その他
    ホーム 技術発信 DoRuby モバイルでの開発の際の識別ID取得の注意

    モバイルでの開発の際の識別ID取得の注意

    この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

    最近モバイルでの開発をしていた際、各キャリアのユーザ識別IDを取得し、自動ログインをさせる機能を作成したことがあるのですが、その識別IDはいろいろとお約束があるらしく、少しハマったところなので、メモ書き程度にまとめてみます。各キャリア(DoCoMo、au、SoftBank)で取得できる端末識別ID・ユーザ識別IDについて、いろんな決まりごとがあるので、調べた範囲で書きます。
    まずはDoCoMoからー

    ☆DoCoMo
    DoCoMoでは、端末識別番号・iモードID・UID(公式サイトのみ)が取得できます。
    ・iモードID
    URLのパラメータに「guid=ON」を付けると取得できる半角英数7桁の識別子。
    公式サイトでなくても取得出来ますが、SSL対応しているページでは取得出来ません。
    ・UID
    DoCoMo公式サイトに限り、URLのパラメータに「uid=NULLGWDOCOMO」を付けると取得できる半角英数12桁の識別子。
    これも、SSL対応ページでは取得できません。
    また、「uid=NULLGWDOCOMO」となっていますが、「NULLGWDOCOMO」の部分は12桁の半角英数であれば、「NULLGWDOCOMO」である必要はないらしいです。

    だから、UIDを取得するときは12桁かどうかのチェックが必要になりますね!

    SSLページで取得出来ないというのは結構クリティカルでした。。。
    ちなみに対応としては、SSLページへの遷移の前に1つアクションを挟む(iモードID・UIDが取得できるアクションで取得する)か、SSLページへのリンクに何かパラメータをつけて、そのパラメータが無いと自動ログインとしてみなさない、といった対応が必要です。
    (セッション情報を用いた成りすましに注意!!)

    au、SoftBankに関しては、また別途追記します。