目的
SAML連携の設定をする際、全体工程が見えないことが多いと思います。
本記事では、全体フローをできるだけわかりやすく記載します。
※大体SPとIdPでは担当者が違い責務がわかれているため、
苦労することも多いと思います。
今回のサンプル事例
AWSにEC2でTableau Serverを構築しました。
クラウドの認証基盤(IDaaS)であるOracleIDCSを利用しているため、
Tableauのローカルログインではなく、IdPとしてOracleIDCSを設定することで
認証の統合をする。
全体フロー
簡単説明
共通
・SAMLアサーションの仕様取り決め
SAML連携では、IdP側でもっているユーザーの属性情報を渡すことができます。
どの値でユーザーを紐付けるのか(一般的にはメールアドレス や ユーザーIDとなるもの)、
どの情報をどういうカラム名で渡しますという仕様を決める必要があります。
Tableauの場合は以下のカラムがあります。
IdP側では「usernameにEメールアドレスを設定します。」というような設定が必要になります。
SP(Tableau側)
・ドメイン決定
AWSにEC2でTableau Serverを構築する際、
アクセスするためのURL(ドメイン)を用意します。
これがSAML連携をする上での最初のInput情報となります。
・証明書作成
SP開始の際、SAMLリクエストに署名するための証明書を作成します。
秘密鍵は重要な情報ですので大切に保管しましょう。
署名証明書はIdP側の設定の際に利用します。
※証明書の作成方法(Windows)
■OpenSSLインストール
https://slproweb.com/products/Win32OpenSSL.html
Win64 OpenSSL v1.1.0k Light をダウンロードしてインストール
※one time $10 donation to TWndows OpenSSL のチェックははずす
■環境変数の設定をする
コントロールパネル=>システム=>システムの詳細設定=>環境変数=>システム環境変数
Pathに以下を追加
C:\OpenSSL-Win64\bin
■証明書作成
コマンドプロンプトで以下
openssl genrsa -out server.key 4096
openssl req -new -key server.key -out server.csr
⇒国など質問されるので適当な値を入力
openssl x509 -in server.csr -out server.crt -req -signkey
・SP側設定
ドメイン、証明書、SAMLアサーションの仕様取り決めが完了すると、
ようやくSP側の設定ができます。
・SP側メタデータダウンロード
このメタデータはIdP側の設定で参考となる値が記載されています。
このファイルをIdP側担当者に渡すか、作成した署名証明書とURLを伝えればOKです。
・IdP登録
IdP担当者からメタデータ(xml)をもらったら、それをインポートしましょう。
IdP(OracleIDCS側)
・SP登録
SPとの仕様取り決め + URL + 署名証明書を利用してアプリケーション登録する
・IdPメタデータダウンロード
IdPの情報が記載されているメタデータをダウンロードします。
これは、SP側でのIdP登録に利用します。
まとめ
★事前取り決め内容(最低限)
・IdPとSPのユーザーを紐付ける一意のID(NameID)
・その他マッピング
★IdP側が必要とする情報
・SPメタデータ
※SPのURL、SPの署名証明書があればok
★SP側が必要とする情報
・IdPメタデータ
シングルログアウトするかどうかとかもあるのですが、ここでは割愛させていただきます。
少しでも読んでくれた方の理解が深まれば嬉しいです。