
Okta
オクタ
Okta CIC(Auth0)Actions機能アップデート(2023年8月)
はじめに
Okta CIC(Auth0)では、認証認可におけるカスタムロジックを実現するActions機能が提供されています。2023年8月に、以下3点の機能アップデートが行われました。
- ログインユーザに関するSAML応答カスタマイズ
- アクセストークンにおけるスコープカスタマイズ
- 利用可能なユーザ情報の拡張
本ページでは、上記アップデート内容と具体的な設定例をご紹介します。
前提
本ページ記載の機能及び設定に関する内容は、2023年8月現在の情報となります。Actions機能の概要及び基本的な設定方法は、Auth0 Actions機能を利用したトークンカスタマイズ実現をご確認ください。
機能アップデート概要
今回アップデートされた機能は以下の通りです。
- ログインユーザに関するSAML応答カスタマイズ
Login FlowのAPI Objectとして、ログインユーザに関するSAML応答のカスタマイズ機能が追加されました。SAML応答への任意の属性追加、NameID形式の指定やSAMLトークンの有効期限等のカスタマイズができます。追加されたAPI Object(api.samlResponse)は、Actions Triggers: post-login - API Object - Auth0 docsをご確認ください。
なお、Actions機能によるSAML応答カスタマイズには、制限事項があります。詳細は、Actions Limitations - Auth0 docsをご確認ください。 - アクセストークンにおけるスコープカスタマイズ
Login FlowのAPI Objectとして、アクセストークンにおけるスコープ追加及び削除機能が追加されました。リクエスト元情報等に応じて、スコープの追加削除ができます。
追加されたAPI Objectは、api.accessToken.addScope/api.accessToken.removeScopeとなります。詳細は、Actions Triggers: post-login - API Object - Auth0 docsをご確認ください。 - 利用可能なユーザ情報の拡張
Actions内で利用可能なユーザ情報の詳細は、Actions Triggers: post-login - Event Object - Auth0 docs(Login Flowの場合)をご確認ください。
設定及び動作例
今回のアップデート機能を利用した設定及び動作例をご紹介します。
設定例①:SAML属性のカスタマイズ
Auth0によるSAML認証実現(Splunk Cloud)で、Rules機能を利用したSAMLレスポンスのカスタマイズをご紹介しました。今回は、同様の処理をActions機能で実現します。
- Auth0管理画面にて、[Actions] > [Library]をクリック
- [Build Custom]をクリック
- 作成するAction名、Actionのトリガ、実行環境を選択し、[Create]をクリック
![作成するAction名、Actionのトリガ、実行環境を選択し、[Create]をクリック](/business/security/okta/image/okta_cic_actions_dr01.png)
※必要最低限の処理のみ記載
exports.onExecutePostLogin = async (event, api) => { if (event.authorization) { api.samlResponse.setAttribute('http://schemas.auth0.com/rolez', event.authorization.roles) } };
![[Deploy]をクリックし、正常に保存されたことを確認](/business/security/okta/image/okta_cic_actions_dr02.png)

![[Apply]をクリックし、正常に反映されたことを確認](/business/security/okta/image/okta_cic_actions_dr04.png)
動作例①:SAML属性のカスタマイズ
(略) <saml:Attribute Name="http://schemas.auth0.com/rolez" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml:AttributeValue xsi:type="xs:string"> admin </saml:AttributeValue> </saml:Attribute> (略)
設定例②:アクセストークンにおけるスコープカスタマイズ
今回は、アクセス元の国情報と要求先リソースの条件に応じて、アクセストークンのスコープ追加を実現します。
設定例①と同様に、Actionの新規作成及び作成したActionをLogin Flowに組み込みます。
- コードエディタにて、実現するロジックを記載(JavaScript記述)
※必要最低限の処理のみ記載
exports.onExecutePostLogin = async (event, api) => { if (event.request.geoip.countryCode === 'JP' && event.request.query.audience === 'https://example.com') { api.accessToken.addScope("read:jp"); } };
動作例②:アクセストークンにおけるスコープカスタマイズ
Authorization Code Flowを利用して、作成したActionによるトークンカスタマイズ処理を確認します。必要となる設定は、Auth0におけるAuthorization Code Flow(アクセストークン&IDトークン)をご確認ください。
https://<YOUR_AUTH0_TENANT_NAME>.<REGION_DOMAIN>.auth0.com/authorize?audience=https://example.com&response_type=code&scope=openid profile email&client_id=Bb9P6WoNhg0XIBnpSNLxd284ChfCxUIq&redirect_uri=https://example.com

> curl -X POST --url 'https://<YOUR_AUTH0_TENANT_NAME>.<REGION_DOMAIN>.auth0.com/oauth/token' --header 'content-type: application/x-www-form-urlencoded' --data 'grant_type=authorization_code&client_id=Bb9P6WoNhg0XIBnpSNLxd284ChfCxUIq&client_secret=quS8KFlWCT7UUtOdHvzIMKaip72Ut2dy0KgQproakBP9hXh4_yxixB1d5u_L4MKN&code=LfsgBMfG4Gs_TxysEr_6yXREFb2W10a0UrL9VIwEzZpjz&redirect_uri=https://example.com'
> curl -X POST --url 'https://<YOUR_AUTH0_TENANT_NAME>.<REGION_DOMAIN>.auth0.com/oauth/token' --header 'content-type: application/x-www-form-urlencoded' --data 'grant_type=authorization_code&client_id=Bb9P6WoNhg0XIBnpSNLxd284ChfCxUIq&client_secret=quS8KFlWCT7UUtOdHvzIMKaip72Ut2dy0KgQproakBP9hXh4_yxixB1d5u_L4MKN&code=LfsgBMfG4Gs_TxysEr_6yXREFb2W10a0UrL9VIwEzZpjz&redirect_uri=https://example.com'
取得結果 (スコープ追加を確認)
{
"access_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6Ikp...(略)...uddoylYsMiU_cxfgUXQ",
"id_token":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVC...(略)...reTo69XG_wKEv3otwug",
"scope":"openid profile email read:jp",
"expires_in":86400,
"token_type":"Bearer“
}
{
"iss": "https://<YOUR_AUTH0_TENANT_NAME>.<REGION_DOMAIN>.auth0.com/",
"sub": "auth0|642637dc3d0fd8dd93fedd90",
"aud": [
"https://example.com",
"https://<YOUR_AUTH0_TENANT_NAME>.<REGION_DOMAIN>.auth0.com/userinfo"
],
"iat": 1694236566,
"exp": 1694322966,
"azp": "Bb9P6WoNhg0XIBnpSNLxd284ChfCxUIq",
"scope": "openid profile email read:jp"
}
おわりに
今回は、Actions機能のアップデートをご紹介しました。Rules/Hooks機能に関するEOL(End of Life)アナウンスが出ておりますので、Actions機能で実現可能となる処理は、今後も追加されていくと予想されます。
実施されるアップデートに応じて、今後も随時情報更新していきたいと思います。
参考
お問い合わせ・資料請求
株式会社マクニカ Okta 担当
- TEL:045-476-2010
- E-mail:okta@macnica.co.jp
平日 9:00~17:00