Akamai Identity CloudのOIDC用認証APIを検証する
はじめに
MuleSoftでAIC(Akamai Identity Cloud)を利用してAPIのクライアント認証が利用できるか検証するため、まずAICのOIDC用認証APIについて検証した。
目次
下記の順番で手順を説明する。
- OIDCの設定情報を確認する
- Client認証を試す
- Authorization Code認証を試す
- Implicit認証を試す(※ヘルプURLのみ記載)
- その他の認証方式(付録)
詳細
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について検証しました。
ドキュメントを読んだだけでは、なかなか分かり辛いのでぜひ参考にしてみてください。では、






