Okta Developerウェブサイトの歩き方
目次
- ユーザー名形式や属性のカスタマイズ(Okta Expression Language・式言語)
- カスタムドメインの設定
- 外部Identity Providerの追加
- APIの活用
- SDKの活用
- Okta Integration Networkへのアプリケーション新規登録申請
- 最後に
Okta Workforce Identityの製品ドキュメントは現在Okta Identity EngineとOkta Classic Engineそれぞれ日本語版のドキュメントを提供しています。手前味噌ながら、これらのドキュメントは分かりやすくまた詳細に記載されており、お客様からもOktaを支持頂いているポイントの1つです。このドキュメントとは別にOkta Developerという英語のウェブサイトがあります。非常に豊富なリソースがあり、また開発者向けの情報も多く存在することから、少し取っ付き難いと感じるかもしれません。
Okta Workforce Identityには従業員向けの認証基盤としての利用に加えて、社外向け(バートナーや契約企業)の認証基盤として利用する場合や、自社開発のアプリケーションをOkta Workforce Identityと接続し認証・認可を提供するといったカスタマイズ性と拡張性もあります。
そこで今回は、どういった際にこのOkta Developerウェブサイトから情報を得る必要があるのか、実際の利用ケースに応じて例示しながらご紹介したいと思います。執筆時点においては、残念ながらOkta Developer日本語化の予定はありませんが、ブラウザの翻訳機能を活用するとスムーズに読んでいただけるかと思います。
ユーザー名形式や属性のカスタマイズ(Okta Expression Language・式言語)
Okta Expression Languageを用いると、ユーザー名形式や属性のカスタマイズを柔軟に行うことが可能です。書式や多くのサンプルがOkta Developerウェブサイトに掲載されています。
例えば、Okta Workforce Identityと接続しているアプリケーションに対して、Oktaのユーザー名とは異なる形式でユーザー名を渡す必要がある場合、ユーザーのプロビジョニングを行う場合は、「アプリケーションユーザー名の形式」設定で、「カスタム」を選択し、Okta Expression Languageで記述することで、ユーザー名を新たに形成することが可能です。
- String.substringBefore(user.login,"@") + "@example.com"
これはOktaのuser.login属性から@より前を抜き出し、その文字列の後に@example.comを付加しアプリケーションのユーザー名形式を形成します。例えば、従業員の方の出向や兼務により、複数のドメインをまたがって利用するような場合、企業のM&Aにより異なるドメインが混在するような複雑な場合も対応することが可能です。
- DateTime.now().toZone('Asia/Tokyo').toString('HH').toInteger() <= 10 OR DateTime.now().toZone('Asia/Tokyo').toString('HH').toInteger() >= 22
Okta Expression Languageは認証ポリシー(OIE)のルール内においても使用することが出来ます。この例では、日本時間朝10時から22時までの間の認証は成功後に許可される、という記述方法になります。
この他にもOkta Expression LanguageはProfile Editorでの個別属性のカスタマイズやグループルールの条件で使用することも可能です。上記以外の記述例も多く記載されています。
カスタムドメインの設定
Okta Workforce Identityのカスタムドメインを利用するための設定は、Okta Developerウェブサイトにおいて手順の記載があります。通常Okta Workforce Identityについてはお客様毎にサブドメインを発行し、jkaname.okta.com といったOktaドメインでご利用いただくことが標準です。これをlogin.jkaname.net といったような自社のドメインを用いることでユーザー体験をよりカスタマイズすることが可能です。
カスタムドメインの設定については注意が必要です。こちらに注意事項の記載がありますのでよく理解し、特に運用中の場合は十分検討が必要となります。Oktaドメインはカスタムドメインと並行して、引き続き利用可となりますが、カスタムドメインを利用するためには、FIDO2(WebAuthn)認証の再設定やメタデータURLがカスタムドメインとなるようSPのSAML設定変更が必要となります。この他にもOkta Workflows、Okta Identity Governance、Okta Privireged Accessについてはカスタムドメインに対応していないので、引き続きOktaドメインで使用する形となります。
外部Identity Providerの追加
Okta Workforce IdentityはIdentity Providerとして機能することが基本となりますが、様々なケースに対応できるよう、外部のIdentity Providerを追加することが可能です。この場合OktaはSAMLの場合、SPとして動作します。この機能のことをインバウンドフェデレーションと呼ぶ場合もあります。詳細はOkta Developerウェブサイトに手順の記載があります。
具体的なユースケース例としては、以下のような場合においてインバウンドフェデレーションを活用します。
- 買収した企業がOkta以外のIdPを利用しており、一部の従業員の認証はOktaではなく、外部のIdentity Providerで行う必要がある場合
- 買収した企業やグループ会社が既にOktaを利用しており、Hub & Spokeモデルを構成する場合(Org2Org、テナントの親子構成)
- 現在OktaではないIdentity Providerを利用している状況から、Oktaへ移行する際のユーザー移行、Just in Timeプロビジョニング
- x.509デジタル証明書による認証
- 外部協力会社、パートナー企業の認証
APIの活用
Okta Workforce Identityでは非常に多くのAPIが公開されており、現在APIリファレンスは刷新されOkta Developerウェブサイト内に集約されました。このAPIリファレンスがカバーする範囲は広範となり、OpenID Connect、OAuth 2.0で認証・認可する際のエンドポイント、プロビジョニングの際に用いるSCIMプロトコルに関する仕様、またOkta Admin Consoleの操作と対応する管理APIなどがあります。それぞれのAPI、エンドポイントに対するレートリミットはこちらに記載があります。
日常運用において、Okta Workforce Identityを手動で操作している定型業務、例えばパスワードリセット、Authenticatorのリセット、端末紛失等に伴うデバイスの停止・解除など、Okta Workflowsを用いることでノーコード・ローコードでこれらのAPIを活用することが出来ます。またその他のご利用中のワークフロー製品やiPaaS製品とAPIを組み合わせることで、これらの操作を自動化する実装が可能です。
OktaのAPIではそれぞれのドキュメントに各言語のサンプルの記載があります。またPostmanにCollectionをインポートするとで、簡単に素早くテストするといったことも可能です。さらにOktaでは Terraform Providerを提供しており、Okta Workforce Identity自体の管理をIaCを通じてCI/CDパイプラインを構築することも可能です。
SDKの活用
多くのお客様は、SAMLやOIDCに対応した多くのSaaSアプリケーションをOkta Workforce Identityと接続し、利用されているかと思います。SaaSアプリケーション以外にもオンプレミスのアプリケーションをOkta Workforce Identityと接続する仕組みも提供しており、Okta Access Gatewayといったリバースプロキシ型の製品も提供しています。
自社開発・内製のアプリケーションに対して認証機能が必要な際、Okta Workforce Identityで認証したいといった場合には、Okta Developerウェブサイトにて紹介しているSDK・サンプルアプリケーションを活用しアプリケーションに組み込むことが可能です。SDKを組み込んだアプリケーションとOkta Workforce IdentityはOIDCで接続することが可能になります。
認可の際のアクセストークンにおいて、任意のスコープやクレームを含む必要がある場合はOkta Workforce Identityライセンスの考慮が必要です。詳細は担当営業までご相談下さい。
Okta Integration Networkへのアプリケーション新規登録申請
Okta Integration Network(OIN)では2024年12月現在、8000を超える検証済みのアプリケーションカタログを提供しており、シングルサインオンだけでなくプロビジョニングほか様々なOkta Workforce Identity機能との統合を提供しております。このOkta Integration Networkに自社開発のアプリケーションを追加し、世界中のOktaユーザーにカタログを用いて容易に設定して頂くことが可能です。この申請方法についてもOkta Developerウェブサイトに記載があります。
シングルサインオンとプロビジョニングの統合についてはDeveloper Editionの環境からOIN Wizardという仕組みを使用して、情報を入力し、またセルフサービスで試験をして頂いた後に申請可能となります。また申請にあたっては事前に接続検証や設定ガイドの作成が必要となります。詳細の必要事項については細かく記載がありますが、日本語の申請方法資料についても別途準備しており、ご説明、ご提供することが可能です。またアプリケーションがOINで公開となった際には、プレスリリースを発表させて頂いています。詳しくはOkta担当営業までご相談下さい。
Okta Workforce Identityの新製品であるIdentity Threat Protection with Okta AI (ITP)では、中心機能となるUniversal Logout、認証後にOktaで検知した脅威やサードパーティソリューションから報告のあったリスクに応じてアプリケーションセッションを取り消す機能があります。このUniversal Logout対応アプリケーションもOINの枠組みでアプリケーション対応を拡大しております。ご興味がある場合は是非ご相談下さい。
最後に
今回はOkta Developerウェブサイトをどういった場合に参照するのか、具体的な例に応じて掻い摘んでご紹介しました。これら以外にも、SAML、OIDCやSCIMプロトコルについて学ぶコンテンツほか多くのリソースが詰まっています。是非、Okta Workforce Identityの活用の幅について知って頂き、アイデンティティのセキュリティを確かなものにする一助となれば嬉しく思います。