一般社団法人 全国個人事業主支援協会

COLUMN コラム

今回はAPPLEアカウントを使用したログイン機能である、Sign In With Apple実装におけるネタを1つご紹介させていただきます。

ここ数年、外部アカウントを利用した会員登録が流行っています。
Google、Yahoo、Facebook、Twitter、Lineなど様々なアカウントを使った簡易的な会員登録があります。

最近、私が業務で対応したAPPLEの会員登録(ログイン)機能実装時、Client Secret(クライアントシークレット)というJWT(JSON Web Token)を使用して認証を行います。

私自身、JWTについて知見がなかったため、生成したClient Secretが正しいか否かを確認する方法がわかりませんでした。

ようやくわかったので、JWT(Client Secret)自身が正しいかを確認する方法を掲載させていただきます。

1.JWT.ioへアクセスする
https://jwt.io/

2.Debugger(デバッグできる機能)がトップページにあるため、生成したJWTをEncoded欄にコピペします。
この時点でAlgorithm欄が自動でES256に変更されます。(APPLEのClient Secret事態がそのアルゴリズムであるため)

3.自動で、画面右側のDecodedのHEADER、PAYLOADにJSONの内容が表示されます。
この時点でエラーになり、HEADER、PAYLOADが表示されない場合はJWTが間違っている可能性があります。

4.署名確認
手順3の時点では、Encodedペインの下に「Invalid Signature」と表示されるかと思います。
よって、右ペインのVERIFY SIGNATUREのPUBLIC KEYに公開鍵を入力する必要があります。

—————————————————————————————

<公開鍵生成手順>
(1)APPLEのDEVELOPERサイトにて、Sign In With Apple用に秘密鍵を生成します。
(2)秘密鍵を使用して、公開鍵を取得します。
$ openssl ec -in key.p8 -pubout -out pubkey.p8

—————————————————————————————

5.生成された公開鍵の中身をコピーし、JWT.ioのVERIFY SIGNATURE欄にペースト

結果、「Signature Verified」が表示されれば、署名が正しいことになり、Client Secretも正しい事が分かります。

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア