LoginSignup
9
1

More than 3 years have passed since last update.

Identity Coud Service(IDCS)とAPEXアプリケーションをシングル・サインオン(SSO)で連携してみた

Posted at

はじめに

Identity Cloud Service(以後、IDCS) は、Oracle Cloud(OCI)で提供されているIDaaS(Identity as a Service)で、シングル・サインオン(SSO)や、セキュリティの強化機能として多要素認証、またActive Directory とのユーザー同期などを実現可能な認証・認可サービスです。

一方でOracle Application Express(以後、APEX)は、その名のとおり素早くローコードのアプリケーションを開発できるプラットフォームを提供しています。

今回はIDCSとAPEXアプリをSSOするための素晴らしい技術ブログが見つかったので、こちらを実際にやってみます。
Integrating SSO between APEX Cloud and Identity Cloud Service the Easy Way

この記事のよいところ:

  • APEXの無償環境で構築済みAPEXアプリを使用。素早く連携を試せる。
  • Step by Step の解説で、手順が容易。
  • OAuth の解説リンクもある。

準備

APEXサンプルアプリを選択しインストールする

既にサインイン可能なAPEXアプリケーションをお持ちであれば、準備はスキップして次章のSSO設定から始めてください。

APEXサインインページ へ移動し、[無償で開始]を選択します。次に[無償ワークスペースのリクエスト]をクリックします。

image-20210104092039810.png
名前や、電子メール、ワークスペース名等の必要情報を入力しワークスペースをリクエストします。
image-20210104093545113.png
ワークスペースをアクティベートするための電子メールが届くので、[Create Workspace] をクリックしワークスペースを作成します。
image.png
続けてパスワードを設定しサインインします。
image-20210104095116395.png
サインインできたら、[アプリケーション・ギャラリ]へ移動し、Group Calendar を検索します。
image-20210104095524097.png
image-20210104095548664.png
Group Calendarをインストールします。
image-20210104095617131.png
image-20210104095731223.png

管理アイコンをクリックし、アプリケーションのロック解除をおこないます。
image-20210104095822732.png
image-20210104095830008.png

Playボタンをクリックし、Group Calender にサインインします。
image-20210104103208947.png

Group Calendar にサインインできました!
image-20210104100111371.png
このアプリをIDCSとシングルサインオンするためには、サインイン時のURLに含まれる情報が必要です。後述のIDCSのアプリケーション登録時に使用するため、サインイン時のURLはアプリケーションIDまで含めて保持しておいてください。以下の例では 92476 がアプリケーションIDに該当します

例) https://apex.oracle.com/pls/apex/idcs_apex-ws/r/92476/ --- 以降は省略 ----

SSO設定

IDCSにAPEXアプリを追加登録

前提

  • IDCSのテナントと管理者権限が必要です。
  • テナントについて URLパラメータ https://idcs-.identity.oraclecloud.com の は、テナント用に自動的に作成される一意の識別子を意味します。 例) https://idcs-8a68f8f344c749ad91ee182ee84f33das.identity.oraclecloud.com ここでは、 8a68f8f344c749ad91ee182ee84f33das がテナントの識別子を表します。

設定の方式

  • IDCSの機密アプリケーション(Confidential Application)を設定しAPEXアプリを登録します。
  • OpenID Connectプロトコルを介してOAuth2クライアントとしてAPEXアプリ(Group Calander)とSSOします。

IDCSに管理者としてサインインします。
image-20210104150714895.png

アプリケーション を選択、上部の追加をクリック。
image-20210104150900251.png

機密アプリケーションの追加

アプリケーションの追加 から機密アプリケーション を選択。
image-20210104151040032.png

1. 詳細の設定

アプリケーションの詳細項目を入力します。
image-20210104162231732.png
[名前] 任意の名前を入力
[アプリケーションURL] APEXアプリケーション(Group Calendar)を作成した際に保持しておいたURLの情報をベースに、アプリケーションへサインインするためのURLを指定します。
例) https://apex.oracle.com/pls/apex/f?p=92476

補足)APEX Syntax の詳細情報は、以下を参照ください。
アプリケーション・ページURLについて

2.クライアントの設定

続けて、クライアント項目を設定します。
image-20210104162411163.png
認可コード チェックします。
[リダイレクトURL] 以下を指定
https://apex.oracle.com/pls/apex/apex_authentication.callback
[ログアウト後のリダイレクトURL] アプリケーションURLを指定
例) https://apex.oracle.com/pls/apex/f?p=92476

3.リソースの設定

でスキップ
image-20210104162528498.png

4.Web層ポリシーの設定

でスキップ
image-20210104162622664.png

5.認可の設定

終了 をクリックすると、アプリケーションが追加された とのメッセージが表示される。
image-20210104162719390.png

クライアントID と、クライアント・シークレットは保存しておきます。
image-20210104162853750.png

アプリケーションを有効化します。
image-20210104162953927.png

以下のようにIDCSのアプリケーションへ機密アプリケーションが作成され登録が完了しました。
image-20210104163136177.png

APEXの設定

1. APEXアプリにWeb資格証明を作成

アプリケーション・ビルダー をクリック
image-20210104165506751.png

続けて、ワークスペース・ユーティリティ をクリックします。
image-20210104170316560.png

Web資格証明 をクリックし、作成 へ進みます。
image-20210104170531473.png
image-20210104170620152.png
[名前] 任意の名前を入力
[認証タイプ] 基本認証を選択
[クライアントIDまたはユーザー名] IDCSに機密アプリケーションを追加した際に保持しておいた、クライアントIDを貼り付けます。
[クライアント・シークレットまたはパスワード] IDCSに機密アプリケーションを追加した際に保持しておいた、クライアント・シークレットを貼り付けます。
[クライアント・シークレットまたはパスワードの確認] IDCSに機密アプリケーションを追加した際に保持しておいた、クライアント・シークレットを貼り付けます。

Web資格証明作成 されました。
image-20210104171407296.png

2. 認証スキームの作成

アプリケーション・ビルダー 画面から Group Calendar編集(ペンのマーク)を選択します。
image-20210104171729034.png
共有コンポーネント をクリックし、セキュリティ項目から認証スキームを選択
image-20210104171930201.png

続けて、認証スキーム を作成します。
image-20210104172118675.png
image-20210104172343507.png
[名前] 任意の名前を入力
[スキーム・タイプ] ソーシャル・サインインを選択
[資格証明ストア] IDCS Web Credentials を選択
[認証プロバイダ] OpenID Connect プロバイダ を選択
[検出URL] https://idcs-.identity.oraclecloud.com/.well-known/openid-configuration を入力
例) https://idcs-8a68f8f344c749ad91ee182ee84f33da.identity.oraclecloud.com/.well-known/openid-configuration
[有効範囲] profile を選択
[ユーザー名] sub を選択
[ユーザー名の大文字への変換] いいえ を選択

認証スキームの作成 を実行し、作成されました。
image-20210104172432884.png

作成された認証スキーマをクリックし、ログアウト後URLにURLを追加し、変更の更新をします。
image-20210104172716835.png
[URL] IDCSのクライアント設定時の[ログアウト後のリダイレクトURL]と一致する必要があります。
例) https://apex.oracle.com/pls/apex/f?p=92476

動作確認

SSOの設定がすべて完了したので、APEXアプリケーション(Group Calender)にアクセスしてSSOが有効になるかを確認します。
ブラウザから Group Calender のアプリケーション番号を含む URL でアクセスします。
例) https://apex.oracle.com/pls/apex/f?p=92476

IDCSのサインイン画面が表示されて、SSOの設定が有効になっていることが確認できました。
image.png

ユーザー名、パスワードを入力すると、IDCSの認証に成功し Group Calneder が表示されました。右上端にはIDCSと同じユーザー名が表示されています。
image-20210107170631594.png

IDCS と APEX の SSO設定が完了しました!

9
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
1