Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OCI IAM Identity Domains OpenID Connect認証連携設定(基...
Search
oracle4engineer
PRO
June 05, 2023
Technology
1
1.5k
OCI IAM Identity Domains OpenID Connect認証連携設定(基本編)/Identity Domain OpenID Connect(Basic)
OCI IAM Identity DomainとOpenID Connect対応アプリケーションにてOpenID Connectによる認証連携を行うための設定手順(Basic編)になります。
oracle4engineer
PRO
June 05, 2023
Tweet
Share
More Decks by oracle4engineer
See All by oracle4engineer
OCI Network Firewallの構成(考慮事項と構成例)
oracle4engineer
PRO
2
72
Oracle Database Technology Night 96 kernel addressing memory history
oracle4engineer
PRO
3
390
【Oracle Cloud ウェビナー】[Oracle AI Database + Google Cloud] AIとデータ分析でイノベーションを推進
oracle4engineer
PRO
3
110
Oracle Cloud Infrastructure:2026年1月度サービス・アップデート
oracle4engineer
PRO
0
200
【Oracle Cloud ウェビナー】[Oracle AI Database + Azure] AI-Ready データ戦略の最短ルート:Azure AIでビジネス データの価値を最大化
oracle4engineer
PRO
2
140
知っているふりをしないためのMCPサーバー入門 - Oracle AI Jam Session #32 -
oracle4engineer
PRO
8
3k
Exadata Database Service ソフトウェアのアップデートとアップグレードの概要
oracle4engineer
PRO
1
1.2k
【Oracle Cloud ウェビナー】ランサムウェアが突く「侵入の隙」とバックアップの「死角」 ~ 過去の教訓に学ぶ — 侵入前提の防御とデータ保護 ~
oracle4engineer
PRO
2
240
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
1
990
Other Decks in Technology
See All in Technology
【インシデント入門】サイバー攻撃を受けた現場って何してるの?
shumei_ito
0
1.3k
漸進的過負荷の原則
sansantech
PRO
3
420
re:Inventで出たインフラエンジニアが嬉しかったアップデート
nagisa53
4
230
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1k
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
1
260
開発メンバーが語るFindy Conferenceの裏側とこれから
sontixyou
2
400
Claude Codeベストプラクティスまとめ
minorun365
53
30k
BiDiってなんだ?
tomorrowkey
2
510
Amazon Bedrock AgentCore EvaluationsでAIエージェントを評価してみよう!
yuu551
0
190
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
3.8k
「AIでできますか?」から「Agentを作ってみました」へ ~「理論上わかる」と「やってみる」の隔たりを埋める方法
applism118
14
8.9k
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
0
110
Featured
See All Featured
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
61
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
230
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Mind Mapping
helmedeiros
PRO
0
62
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
How GitHub (no longer) Works
holman
316
140k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
600
Deep Space Network (abreviated)
tonyrice
0
37
Speed Design
sergeychernyshev
33
1.5k
Transcript
OCI IAM Identity Domains OpenID Connectによる連携設定手順(Basic編) 2025年6月30日 日本オラクル株式会社
Safe harbor statement 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、 情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以 下の事項は、マテリアルやコード、機能を提供することを確約するものではないため、購買 決定を行う際の判断材料になさらないで下さい。 オラクル製品に関して記載されている機能の開発、リリース、時期及び価格については、弊 社の裁量により決定され、変更される可能性があります。 Copyright
© 2023, Oracle and/or its affiliates 2
はじめに 本手順書により実現する構成イメージ Copyright © 2023, Oracle and/or its affiliates 3
本手順書は下記構成を実現するためのOCI IAM Identity DomainでのOpenID Connectによる連携設定手順書になります。 ※対象のアプリケーション(OpenID Connect対応)は構築済みとの前提となります。 ※対象アプリケーションとIdentity Domainにはユーザーが登録されている前提となります。 OCI IAM Identity Domain OP OpenID Connectによる連携 RP OpenID Connect対応 アプリケーション 利用者 アプリケーションへアクセスすると Identity Domainへリダイレクト 認証 OP:OpenID Provider OP:Relying Party
アジェンダ Copyright © 2023, Oracle and/or its affiliates 4 1.
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ 2. OpenID Connectのフロー(概要)と利用するREST API概要
1. OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023,
Oracle and/or its affiliates 5
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 6 1)OCIコンソール(https://www.oracle.com/jp/cloud/sign-in.html)にアクセスします。 テナント名(クラウド・アカウント名)を入力し「Next」を選択します。 アイデンティティ・ドメインの選択画面が表示される場合には、対象ドメイン(今回は「PoC_IdentityDomain01」)を選択し、 管理者のユーザー名/パスワードを入力しOCIコンソールにログインします。 ※ドメイン選択画面が表示されない環境はDefaultドメインのみ存在する環境になり、自動的に“Defaultドメイン”にログインすることになります。 ※環境によりドメイン選択画面は表示されません。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 7 2) OCIコンソールにログインした後、画面右上のアバターマークより 「アイデンティティ・ドメイン:{アイデンティティ・ドメイン名} 」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 8 3)アイデンティティ・ドメイン画面にて、メニューより「詳細」を選択します。 詳細部分のドメインURLの「コピー」を選択し控えておきます。 ※このURLは後続の手順で利用します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 9 4) メニュー「統合アプリケーション」を選択します。 統合アプリケーション部分にて「アプリケーションの追加」を選択します。 表示されたアプリケーションの追加画面にて「機密アプリケーション」を選択し、「ワークフローの起動」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 10 5)名前、説明に適当な値を指定し、「送信」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 11 6)作成した機密アプリケーション画面にて「OAuth構成」を選択し、「OAuth構成の編集」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 12 7)OAuth構成の編集画面にて、クライアント構成部分の「このアプリケーションをクライアントとして今すぐ構成します」をチェックONにします。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 13 8)認可部分の権限付与タイプにて「認可コード」をチェックONにします。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 14 9)同じ画面にて「リダイレクトURL」に認証後にリダイレクトするアプリケーションのURL(アプリケーション側のコールバックURL)を指定します。 ※必要に応じてログアウトURLやログアウト後のリダイレクトURLも指定します。 画面右後部の「送信」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 15 9) 作成した機密アプリケーションの画面に遷移したことを確認し、右上のアクションより「アクティブ化」を選択します。 確認画面でも「アクティブ化」を選択します。
OpenID Connect連携に必要なOCI IAM Identity Domain側での設定 ~機密アプリケーションの作成~ Copyright © 2023, Oracle
and/or its affiliates 16 10)登録した機密アプリケーションがアクティブ化されたことを確認します。 一般情報部分にある「クライアントID」の値をコピーして控えておきます。 また、クライアント・シークレット部分にあるシークレットの表示より「コピー」選択し、クライアント・シークレットも控えておきます。 ※この「クライアントID」と「クライアント・シークレット」は後続のREST APIを利用時に使用します。
2. OpenID Connectのフロー(概要)と利用するREST API概要 Copyright © 2023, Oracle and/or its
affiliates 17
Copyright © 2023, Oracle and/or its affiliates OpenID Connectアプリケーションアクセス時のフロー(概要) 18
ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) アプリケーションアクセス 認可コード要求 Identity Domainへリダイレクト https://{IdentityDomain URL}/authorize?・・・・ 認証要求 Identity Domainログイン画面 ID/パスワード指定 サインイン押下 認証 認可コード発行 アプリケーションへリダイレクト https://{アプリURL}?code=・・・・ 認可コード取得 IDトークン要求 POST /oauth2/v1/token IDトークン/アクセス・トークン発行 IDトークン検証 ユーザー情報要求 GET /oauth2/v1/userinfo ユーザー情報提供 ログイン処理 アプリケーション画面(ログイン後画面) 必要に応じて 概要2. 概要3. 概要4. 概要5. OpenID Connect構成情報取得 GET /.well-known/openid-configuration 概要1. OpenID Connect構成情報送付 必要に応じて
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要1. 19 【メソッド】 GET 【エンドポイント】 https://{上記1で控えたIdentity DomainのURL}/.well-known/openid-configuration ・Identity DomainのOpenID Connectの各種エンドポイント等の構成情報を取得する場合には下記REAT APIを利用します。 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) OpenID Connect構成情報取得 GET /.well-known/openid-configuration 概要1. OpenID Connect構成情報送付 必要に応じて ⇒レスポンス { "issuer": "https://identity.oraclecloud.com/", "authorization_endpoint": "https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/authorize", "token_endpoint": "https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/token", "userinfo_endpoint": "https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/userinfo", ・・・・・・・・・・・・・・ (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/op-well-known-openid-configuration-get.html
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要2. 20 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) アプリケーションアクセス 認可コード要求 Identity Domainへリダイレクト https://{IdentityDomain URL}/authorize?・・・・ 概要2. https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/authorize? client_id={上記1で作成した機密アプリケーションのクライアントID} &redirect_uri={上記1で作成した機密アプリケーションに指定したリダイレクトURL} &response_type=code &scope=openid ・アプリケーションからの認可コード要求は下記URLをコールします。 (例) https://idcs-d4XXXX0e5.identity.oraclecloud.com/oauth2/v1/authorize?client_id=f65XXXXX872&redirect_uri=http%3A%2F%2Flocalhost%3A3001&response_type=code&scope=openid (注意事項) スコープには必ず”openid"を含めるようにします。 Email情報や電話番号情報も取得したい場合には「scope=openid+email+phone」と指定します。 (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/openidconnectauthcode.html
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要3. 21 https://{上記1で作成した機密アプリケーションに指定したリダイレクトURL}?code={発行された認可コード} ・Identity Domainでの認証が完了すると、下記のように認可コードが付与された状態で機密アプリケーションに指定した リダイレクトURLに遷移します。 リダイレクト先アプリケーションにて、後続のIDトークン/アクセストークン要求のためこの認可コード(code値)を取得します。 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/openidconnectauthcode.html 認可コード発行 アプリケーションへリダイレクト https://{アプリURL}?code=・・・・ 認可コード取得 概要3. (例) https://XXXXXXX:3001?code=AgAgMjNiMDQ・・・・・・・・・・・・・・・T6h2NV1_C5s=
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要4. 22 【メソッド】 POST 【エンドポイント】 https://{上記1で控えたIdentity DomainのURL}/oauth2/v1/token 【Header】 Content-Type: application/x-www-form-urlencoded Authorization: Basic {上記1にて作成した機密アプリのクライアントID:クライアントシークレットのBase64エンコード値(※1)} 【Body】 grant_type=authorization_code&code={上記の詳細3で取得した認可コード(code値)} ・アプリケーションより、概要3で取得した認可コードをもとにIDトークン/アクセストークンを要求するため下記のREST APIをコールし、 レスポンスよりIDトークン(id_token)やアクセス・トークン(access_token)を取得します。 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) IDトークン要求 POST /oauth2/v1/token IDトークン/アクセス・トークン発行 IDトークン検証 概要4. ※1 機密アプリのクライアントID:クライアントシークレットのBase64エンコードの方法については後続ページ参照 ⇒レスポンス { "access_token": "eyJr............Ao8A", "token_type": "Bearer", "id_token": "eyJr............vMZQ", "expires_in": 3600 } (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/openidconnectauthcode.html
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要4. (補足) 23 IDトークン/アクセストークン取得時に指定する{機密アプリのクライアントID:クライアントシークレットのBase64エンコード値}の生成方法 2) ローカルPC上でコマンドプロンプトを開き、下記コマンドを実行しクライアントID:クライアント・シークレットのBase64でのエンコードを行います。 certutil -encode {上記にて作成したテキストファイル名} {Base64エンコード後のファイル名} 3) Base64エンコードしたファイルを開き値を取得します。 途中に改行がある場合には改行を削除します。 1) テキストエディタにて、上記1にて控えた機密アプリケーションの「クライアントID」と「クライアント・シークレット」をコロンで繋いだ形式で保存します。 ※最後に改行をしないようにします。
Copyright © 2023, Oracle and/or its affiliates 利用するREST APIの概要説明 –
概要5. 24 【メソッド】 GET 【エンドポイント】 https://{上記1で控えたIdentity DomainのURL} /oauth2/v1/userinfo 【Header】 Content-Type: application/x-www-form-urlencoded Authorization: Bearer {上記4にて取得したアクセス・トークン(access_token)} ・アプリケーションより、ログインユーザーの情報を取得するため、概要4で取得したアクセス・トークンを用いて下記のREST APIをコールします。 ユーザー ブラウザ Identity Domain アプリケーション (OIDC対応) ⇒レスポンス { "birthdate": "", "family_name": "test", "gender": "", "given_name": "user001", "name": "user001 test", "preferred_username": "test001", "sub": "test001", "updated_at": 1670827316, "website": "" } (参考ドキュメント) https://docs.oracle.com/cd/E83857_01/paas/identity-cloud/idcsa/openidconnectauthcode.html ユーザー情報要求 GET /oauth2/v1/userinfo ユーザー情報提供 必要に応じて 概要5.
None