sidebarIdM実験室いろんなアイデンティティ管理系製品やサービスの実験の記録をしていきます。後は、関連するニュースなどを徒然と。条件付きアクセスを構成するこんにちは、富士榮です。ディープになってきました。公式イベントで話すにはかなり気が引けるネタ度Maxです。ADを組み合わせることで複雑なことをやろう!という話です。P1/P2という複雑なことをやりたい人向けのプレミアなライセンスがありますので、お金に余裕のある方、一気通貫でサポートを頼みたい方は迷わずそちらを選んでください。Service)を提供しているサービスプロバイダです。jwt.io辺りで有名ですね。Bertocciと一緒に書いた人ですね。彼がMSにいる時代にやり取りをしてサイン本をもらったりしたもんです(遠い目)。最近は共著のVittorioもAuth0へ移ったのが個人的なビッグニュースでした。特徴的なのは「開発者向け」である、という売り出し方をしているところですね。開発者向けたる所以は、ひたすらかゆいところに手が届くから、というのが最大の理由だと思います。Service)を提供しており、ID関連の機能の各所にこのWebtaskをどんどん差し込んでいくことが出来るんです。このことにより、例えばid_tokenの中身を見て処理を実行したり、ID登録直後に別の処理を走らせたり、など開発者がやりたい放題出来てしまいます。ADとAuth0を組み合わせると何が出来るのか?という話に移りたいと思います。Auth0はAuth0自体にIDを保持して自身がIdPとして振舞う以外に、外部のIdP(Connectionと呼んでいます)とID連携する機能を持っています。当然のごとく外部のSPとID連携することもできます。ADで、複雑な処理(今回は条件付きアクセスと多要素認証)はAuth0で担当、というようなことを実現することが出来ます。Connect、という構成を組んでみました。Party(RP)としてAuth0を登録してあげる必要があります。ADから払い出します。ADのアプリ登録メニューより登録を行います。URLは以下の通りです。ADの情報を登録していきます。ADが用意されているので、こちらを使ってもいいですし、OAuthを使ってカスタム接続するためのExtensionもあるのでこちらを使って接続しても問題はありません。ADとの接続ConnectorこちらがOAuthを使うExtension私は後者のExtensionを使っています。Secretを登録します。AD上のユーザ情報を取得することが出来ます。Assertionに属性を入れてアプリに渡す必要があるので、必要な属性を取得する様にスクリプトを作ります。APIにアクセスして必要な情報を取得、Profileとして設定して返却してあげる、という流れです。Suite側は目をつぶっていても構成できてしまう世界だと思いますので、Auth0側の設定を中心に。ちなみにAuth0にはApplicationギャラリー的なプリセット・アプリのリストは存在しません。Appの4種類しかありません。Appを選びましょう。Appを選んだとしてもデフォルトではアプリと言っても単純なOAuthのクライアント登録しか出来ないので、AddOnという形でSAML等のプロトコルを設定してあげる必要があります。SAMLの設定もかなりプログラマブルなので、Assertion内の各種パラメータをガリガリと書いていきます。本当に痒い所に手が届きます。出来ないことは何もないので、Assertionの書き方の方言でうまくアプリと繋がらない、というトラブルとは無縁だと思います。Assertionの中身の仕様について熟知している必要はありますが。Suite側に設定してあげれば完了です。これで一通り単純なシングルサインオンについて出来るようになっています。ADの間に挟まっている必要性が全くないので、最初に書いた通り、条件付きアクセスを構成してみます。P1のライセンスが必要な機能です。Auth0での条件付きアクセスを構成するには、Rulesメニューよりルールを構成します。このルールもJavascriptでガリガリと書いていくことが出来るので、ものすごく柔軟です。Agentなど様々な情報を見て多要素認証の適用の有無など各種条件を設定することが可能です。Authenticator)を要求される様になります。Premiumの条件付きアクセス、ということが実現できてしまいました(笑)。よりアクセス解析を行っています。品質向上のみを目的とし、個人の特定などを目的とはしておりません。中で公開されることはあります。問い合わせ不明点等は管理人までご連絡ください。本プライバシーポリシーは予告なく変更/削除することがあります。プライバシーに関するトラブルについては一切の責任を負いかねますのでご了承ください。