【レポート】AWSにおけるIdentity Federationのフルコース #reinvent #SID344
こんにちは、臼田です。
今回はre:Invent 2017で行われましたSID344 - Soup to Nuts: Identity Federation for AWSについてレポートします。
レポート
- このセッションはAWSでサポートしている様々なID連係について解説 + デモを行います
- 用語の定義
- IDプロバイダ
- IDストアである
- 認証・認可を大まかに行う
- IDコンシューマ
- ストアの参照
- 認可を詳細に行う
- 相互の関係性
- 相互に信頼
- プロトコルベースのやりとり
- 同期しない
- IDプロバイダ
- それぞれのアクセスについて理解する
- contole plane(管理アクセス)
- data plane(データアクセス)
- それぞれのplaneでpath, credentials, protocols が違う
- 管理アクセスとデータアクセスはそれぞれ別に考える必要がある
SAML
- SAML入門
- Identity provider (IdP)
- ID(例えばユーザIDやパスワード等)を管理する
- Service provider (SP)
- IdPを利用する、自分では直接認証・認可しない
- Metadata (in advance)
- 事前に共有する関連情報(オプション)
- User
- SPのサービスを利用する
- 認証・認可自体はIdPのアカウントで行う
- Assertion
- ユーザの認証・認可・属性などをやりとりする
- XML形式
- Identity provider (IdP)
- SAML federation
- 社内ID基盤(AD等)を利用して外部サービスと連携する
- SAMLで認証情報をブリッジングする
- ADユーザがIdPからSAML経由でAWSリソースへアクセス
- Cognitoと連携することもできる
- demo1
- IAMでIdPを設定
- roleでSAMLの設定
- プロバイダで先程のIdPを指定
- 紐付けるRoleを選択 or 作成
- 簡単にできた
- ADFS使ってADと連携しよう
- ユーザごと複数のRoleを選択することもできる
- デモ内容の情報はおそらくこちら
- cognitoとの連係demo
- SPAのデモページ
- SAML未対応の状態では、ログイン画面で通常のフォームだけ表示される
- cognitoのユーザプールからSAMLの設定が可能
- IdPをTrustする
- 再度ログイン画面を見ると、別の認証方式としてSAMLを表示できた
- トークンが払い出された
- chaliceのIAM Authorizer等を使うと作りやすい
- 参考情報はこちら
Open ID Connect
- OIDC入門
- OpenIDプロバイダ (OP)
- IDを管理
- Relying Party (RP)
- OPを利用したい別のアプリケーション
- IDを管理しない
- Metadata & Registration (in advance)
- 登録及びメタデータのやりとり
- User
- OPとやり取りして認証
- Tokens
- JSON Web Token (JWT)形式のトークン
- OpenIDプロバイダ (OP)
- OIDC federation
- 外部サービスに対してOIDCは利用できる
- SNSアカウント等
- ローカルのAD管理外の別アプリケーションでも利用できる
まとめ
AWS各種サービスとのID連係は参考になる情報も多く実施しやすいと思います。各種リンク先の内容を参考に構築してみてはいかがでしょうか?
ガンガンシステムを連携してエコシステムを実践しましょう!
なおこの他にも、Kerberos認証についても説明がありましたが、こちらは別セッションの都合で聴講できなかったので省略します。