Akamai Identity CloudのOIDC用認証APIを検証する

Stay hungry. Stay foolish. Your time is limited, so don't waste it living someone else's life.

Akamai Identity CloudのOIDC用認証APIを検証する

はじめに

MuleSoftでAIC(Akamai Identity Cloud)を利用してAPIのクライアント認証が利用できるか検証するため、まずAICのOIDC用認証APIについて検証した。

目次

下記の順番で手順を説明する。

  1. OIDCの設定情報を確認する
  2. Client認証を試す
  3. Authorization Code認証を試す
  4. Implicit認証を試す(※ヘルプURLのみ記載)
  5. その他の認証方式(付録)

詳細

Akamai公式ヘルプ:Hosted Login実装マニュアル

1.OIDCの設定情報を確認する

1)OIDCの各種エンドポイントを確認する。

クライアント認証後にOIDC設定APIにアクセスして、クライアントプロバイダーの設定に必要な情報を確認する。[issuer]と[authorization_endpoint]、[token_endpoint]、[introspection_endpoint]をメモする。

POSTMANに設定したリクエスト情報は以下の通り。

URL: GET <oidc_url>/.well-known/openid-configuration

2)APIクライアント設定情報を確認する。

クライアント認証後にAPIクライアントの設定確認APIにアクセスし[redirectURIs]の情報をメモする。

URL: GET <oidc_urlのloginを削除する>/config/clients/<janrainOidcClientId>
Header:
  Authorization: Bearer <クライアント認証で取得したアクセストークン>

2.Client認証を試す

クライアント認証で取得したアクセストークンが、OIDC用のトークン検証APIで有効・無効を判断できるか検証した。

1)アクセストークンを取得する

AICのコンソール画面にログインし下記の赤枠の情報[oidc_url]と[configuration_client_id]、[configuration_client_secret]をメモする。

POSTMANで、クライアント認証しアクセストークンが取得できた。
赤枠のアクセストークンをメモする。

POSTMANに設定したリクエスト情報は以下の通り。

URL: POST [oidc_url]/token
Header: 
  Authorization: Basic [base64 encode: configuration_client_id:configuration_client_secret]
  Content-Type: application/x-www-form-urlencoded
Request Body:
  grant_type: client_credentials
  scope: *:config/**

2)アクセストークンを検証する

クライアント認証で取得したアクセストークンが、OIDCのトークンの検証APIで有効・無効が判断できることがわかった。

POSTMANに設定したリクエスト情報は以下の通り。

URL: POST [oidc_url]/token/introspect
Header: 
  Authorization: Basic [base64 encode: configuration_client_id:configuration_client_secret]
  Content-Type: application/x-www-form-urlencoded
Request Body:
  token: [access_token]
  token_type_hint: access_token

3.Authorization Code認証を試す

Type: OAuth 2.0
Grant Type: Authorization Code(with PKCE)
Callback URL: <APIクライアントのコールバックURI>
Auth URL: <authorization_endpoint>
Access Token URL: <token_endpoint>
Client ID: <janrainOidcClientId>
Client Secret: ブランク
Code Challenge Method: SHA-256
Code Verifier: ブランク
Scope: openid
State: 123
Client Authentication: Send Client credentials in body

4.Implicit認証を試す

https://identitydocs.akamai.com/home/supported-authorization-grant-types#implicit

5.その他の認証方式(付録)

1)OAuthログインAPIを確認する

ログイン時のドメインを確認する。

ログインフローのバージョンを確認する。

APIクライアントのクライアントIDを確認する。

ログインユーザ情報を確認する。

POSTMANに下記のリクエスト情報を設定する。

URL: POST <Registration Domain(s)>/oauth/auth_native_traditional
Request Body:
  client_id: <APIクライアントのクライアントID>
  flow: <ログインフロー名>
  flow_version: <ログインフローのバージョン>
  locale: en-US
  redirect_uri: <APIクライアントのリダイレクトURI>
  response_type: code
  form: signInForm
  signInLoginId: <ユーザの[loginId]>
  signInPassword: <ユーザのパスワード>

2)アクセストークン取得APIを確認する

Direct Access権限の持つAPIクライアントの[Client Id]と[Client Secret]を取得する。

赤枠の[Client Id]と[Client Secret]をメモする。

Registration Domainをメモする。

アクセストークンを取得する対象ユーザのUUIDをメモする。

POSTMANからリクエストを送信するとアクセスリクエストが取得できた。

URL: POST [Registration Domain]/access/getAccessToken
Header: Authorization: Basic [Direct Access Client.Client Id: Direct Access Client.Client Sercret]
Request Body:
  uuid: [User.UUID]
  type_name: user

さいごに

いかがだったでしょうか。AICのOIDCの認証関連のAPIについて検証しました。
ドキュメントを読んだだけでは、なかなか分かり辛いのでぜひ参考にしてみてください。では、