OAuth 2.0の代表的な利用パターンを仕様から理解しよう 仕様策定から5年がたったOAuth 2.0の現状と概要を紹介。「Webアプリ」「ネイティブアプリ」「JavaScriptアプリ」といったOAuth 2.0の各種ユースケースについて、仕様を読み解きながら説明する。
OAuth 2.0の代表的な利用パターンを仕様から理解しよう 仕様策定から5年がたったOAuth 2.0の現状と概要を紹介。「Webアプリ」「ネイティブアプリ」「JavaScriptアプリ」といったOAuth 2.0の各種ユースケースについて、仕様を読み解きながら説明する。
OpenID Connect Basic Client Implementer's Guide 1.0 - draft 37 Abstract OpenID Connect 1.0 は, OAuth 2.0 プロトコルの上にシンプルなアイデンティティレイヤーを付与したものである. このプロトコルは, Client が Authorization Server の認証結果に基づいて End-User のアイデンティティを検証することを可能にする. また同時に End-User の必要最低限のプロフィール情報を, 相互運用可能かつ RESTful な形で取得することも可能にする. 本ドキュメント OpenID Connect Basic Client Implementer's Guide 1.0 は, OpenID Connect Core 1.0 仕様のサブセットであり, OAuth Au
はじめに 複数のWEBサービスをシングルサインオン(SSO)でというのは 最近は普通になってきてますね。googleしかり。facebookしかり。 この認証というのが実はとっても複雑なんですね。 知らない人が取り組もうとするとまず用語がわけわからんくてやめます。 さらに認証といってもいろいろな方式があって、さらに流行り廃りもあり 1年前の情報ページが古くて使えないなんてザラ。 完全に初心者キラーな無理ゲー状態です。 今回は認証?なにそれ?なエンジニアでも とっても苦労しながらなんとかSSO作れたぞ、という記録を公開したいと思います。 なお、2014年10月に試してますから! 上述したとおり、認証絡みはすっぐ情報古くなるんでそこんとこ踏まえて 読んでいただければと思います。 なお、認証関連のワードがどんどん出てきますがあまり説明しません。 なぜなら私もよくわかってないので。 やること We
LINE のイベントで LINE Login が OpenID Connect に対応したという発表があったようです。 昔に比べると、簡単に LINE Login の設定が出来るようになっているので、今後は色々な部分での採用が広がりそうな気もします。OpenID Connect 対応は特に重要なアップデートだと感じますね。 Integrating LINE Login with your web app 既に IdM の凄い人は試しているようでしたし、最近は ASP.NET Core 2.0 で OpenID Connect について調べてたので、ついでに試してみることにしました。 LINE Login の設定をする LINE Developers から LINE Login を追加すると Channel Id と Channel Secret が貰えます。 テスト用に適当な名前で追加しま
概要 Keycloakアドベンドカレンダー3日目は、Spring BootベースのWebアプリケーションの認証をKeycloakに委譲する手順について説明します。KeycloakにはSpring Boot用のアダプターがあり、簡単にSpring BootベースのWebアプリケーションをセキュリティ保護できます。これにより、最新の認証プロトコルである「OpenID Connect」(以下OIDC)に対応したセキュアなSpring Bootアプリケーションとなります。 連携ができると、ユーザーはOIDCの「End User」に、Spring BootベースのWebアプリケーションはOIDCの「Relying Party」に、KeycloakはOIDCの「OpenID Provider」になります。 はじめる前に このチュートリアルの操作をはじめる前に、Keycloakのセットアップを完了し、管
去る2020年1月24日に、OpenID ファウンデーション・ジャパン主催で「OpenID Summit Tokyo 2020」が開催されました。本イベントは、日本におけるOpenIDおよびその周辺技術・ビジネスのイベントです。 今回は、SalesforceのVice President, Identity Product Managementの Ian Glazer氏や、デジタル・アイデンティの父と呼ばれたKim Cameron氏、 MicrosoftのIdentity Architect の Michael B. Jones氏 がキーノートに登壇し、日本からも、経済産業省 CIO補佐官 満塩尚史氏や、国立情報学研究所の山地一禎氏など多くの著名人が登壇されました。 NRIセキュアは、技術セッションにて、新たなユーザー体験を支える新しい認証・認可の技術仕様「OpenID Connect C
データを攻撃する方法が多様であるように、データを安全に保つ方法多くあります。多要素認証、シングルサインオン、オンプレミスのファイアウォールなど、選択肢は多岐にわたります。開発者やIT専門家にとって、データとアイデンティティをいか安全に保つかという選択は、さらに早い段階の、フェデレーションアイデンティティを安全に保つために導入すべき標準を選択することから始まります。 この判断は必ずしも一筋縄ではいきません。OAuth 2.0、OpenID Connect、SAML(Security Assertion Markup Language)は、それぞれがフェデレーションプロセスの構造を形成するものですが、違いを理解しにくい人が多いようです。ここでは、これらの標準の意味、比較、使用目的の違いを明確に解説いたします。 また、SAMLとOAuthの比較については、別の記事で詳しく紹介していますので、そち
概要 OpenID Connectで必須なJWTの検証方法です。 以前書いた「Node.jsでOpenID Connect認証」を前提としています。 検証方法は主に2つあります。 Googleの検証用エンドポイントを使う 公開鍵を使い自分で検証する 公開鍵の方はさらに2つやり方があるので、順に紹介します。 環境 Nodejs 0.10.22 事前準備(ID Tokenを取得) https://github.com/jaredhanson/passport-openidconnect/blob/master/lib/strategy.js#L104 ここで作者がconsole.logを出しているので、ターミナルで出力を見るとJWT形式のID Tokenが分かります。 私の場合以下の様なID Tokenが取得出来ました。※個人情報のため値をいじってます { access_token: 'ya2
This module enables an Apache 2.x web server to operate as an OpenID Connect Relying Party (RP) towards an OpenID Connect Provider (OP). It relays end user authentication to a Provider and receives user identity information from that Provider. It then passes on that identity information (a.k.a. claims) to applications protected by the Apache web server and establishes an authentication session for
こんにちは、kuraです。 この記事はDigital Identity技術勉強会 #iddance のアドベントカレンダーの12日目の記事です。 開発チームを離れてプロジェクトやサービスのマネジメントが中心の業務になっており、コーディングを全然しなくなったのですが、上流工程でシーケンス図はよく書くため、自身の作業効率を上げる意味も含めて今回はOAuth 2.0やOpenID Connectのシーケンス図をまとめようと思います。 画像だけでなくPlantUMLのコードも掲載しておくので、みなさんにも活用いただけたらと思います。 PlantUMLについて PlantUMLはクラス図やシーケンス図がかけるオープンソースの描画ツールです。Qiitaにも記事をまとめてくださっている方はたくさんいるので詳しい情報は検索してみてください。 筆者は以下のあたりを参考にVSCodeとの組み合わせで作成してい
GitHub ActionsがOIDCプロバイダとして使えるようになりました。 これによりAWSのアクセスキーを埋めることなくロールベースでのアクセスができるようになりました。やったね。 この話自体はなぜか公式リリース前にサンプルコードが出回ったりして、みんなサンプルコードコピペして動いた〜って話題になってたので今さら感があるかもですが、例えばTerraformでaws_iam_openid_connect_providerの設定をするならこんなかんじでしょうか。 resource "aws_iam_openid_connect_provider" "github" { url = "https://token.actions.githubusercontent.com" client_id_list = ["sts.amazonaws.com"] thumbprint_list = ["
こんばんは、ritouです。 OpenIDファウンデーションのブログにこんなことが書いてありました。 OpenID 2.0 から OpenID Connect への移行のプラクティス @ Google (追記あり) | 事務局ブログ | OpenID ファウンデーション・ジャパン これについてちょっとだけ補足します。 OpenID 2.0とOpenID Connectの識別子のカンケイ GoogleのOpenID Connectの実装で返されるユーザー識別子は、文字列です。 An identifier for the user, unique among all Google accounts and never reused. A Google account can have multiple emails at different points in time, but this v
OpenIDConnect¶ ↑ OpenID Connect Server & Client Library Installation¶ ↑ gem install openid_connect Resources¶ ↑ View Source on GitHub (github.com/nov/openid_connect) Report Issues on GitHub (github.com/nov/openid_connect/issues) Subscribe Update Info (www.facebook.com/OpenIDConnect.rb) Examples¶ ↑ Provider¶ ↑ Running on Heroku (connect-op.herokuapp.com) Source on GitHub (github.com/nov/openid_conn
前々から言われていた GitHub Actions で OpenID Connect 経由で、各種Cloud Provider の認証を得るのが GA しました。 めでたい。 github.blog これにより、aws-actions/configure-aws-credentials のみで認証が組めるようになったので見てみましょう。 https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actionsgithub.com tl;dr; 動作例 基本 Terraform で AWSを用意する。 OIDC Provider を用意する IAM Role を用意する リソースを作成 GitHub Actions の構成 FAQ GitHub Actionsで実行してみたら動作しない
2011年12月のOpenID Summit Tokyoで、2012年中のOpenID Connect対応を宣言したYahoo! Japanが、本日ついに宣言通りOpenID Connectをサポート開始しました。 もともとOAuth 2.0も対応していなかった(よね?)ので、OAuth 2.0対応も同時リリースです。 まだバグとかあるっぽいけど、何はともあれ世界の大手IdPの中で一番最初にproduction環境でOpenID Connect対応できたのはすばらしい! OpenID Summit Tokyo 2011 from Taizo Matsuoka まだOpenID ConnectのDiscoveryとDynamic Registrationには対応していないので、Nov RPに "yahoo.co.jp" とか入力しても使えない状態ですが、それは今後に期待です。 YConnec
はじめに Developers Summit 2015 にてOpenID Japan エバンジェリストくらさんのセッションを聞いて、認証、認可について分かっていないことが分かりました。それから数か月、各リンクを巡ってStudyした内容をまとめます。 Study対象 モバゲ、Mixi、Facebook 各社の認証、認可シーケンスをまとめます。メジャーなセキュリティリスクとしてどんなものがあるかもまとめます。参考にした元ネタのリンクはページ以下になります。 参照URL DevSumi2014 ID Token: http://www.slideshare.net/kura_lab/devsumi201413c5 DevSumi2015 LoginSession管理 http://www.slideshare.net/kura_lab/openid-connect-and-login-cycle
こんばんは、ritouです。 忘れてしまっている方もおられるかと思いますが、いわゆるOpenID(Authentication 2.0)を使って認証要求を送るまでに、次のような処理が行われます。 ユーザーがOP選択 or 識別子の入力 RPがDiscoveryを行い、OP Endpoint URLを取得 RP,OP間でAssociation確立 これらの処理が行われることで、RPからみると「各OPへの事前登録なんてものは不要」、ユーザーからみると「自分が使っているOPが利用できる」、OPからみると「仕様に沿って実装すればどのRPでも使える」という仕様になっているわけです。 さて、仕様策定が進められているOpenID Connectですが、何度も言ってるとおり、OAuth 2.0ベースです。 OAuthというと、あらかじめClientの事前登録(Client ID/Secretの取得)が必要
はじめに 個人的に CloudNative なアプリケーションフレームワーク Quarkus のいろいろなモジュールを試しています。その中から今回は OpenID Connect クライアントモジュールを利用してみます。 QUARKUS - USING OPENID CONNECT TO PROTECT WEB APPLICATIONS USING AUTHORIZATION CODE FLOW 例では KeyCloak を利用していましたが、今回は Auth0 を利用しました。 事前準備 Quarkus ブランクプロジェクトの作成 Quarkus の最低限のブランクプロジェクトを作成します。追加の依存は何も指定しません。 Quarkus - Start coding with code.quarkus.io pom.xml の中は以下の通り。 <dependencies> <depend
OpenID ConnectのRPを実装していた際、Authentication Requestでのパラメーターにstateとnonceの2つがあることに混乱してしまったので自分用まとめです。防ぎたい攻撃はそれぞれ別のようですがnonceだけで良くないか?と。 OpenID ConnectはOAuthの拡張 OpenID ConnectはOAuth 2.0でAPIを保護しつつ、クライアント上でのユーザー認証もできるようにした仕様です。そしてstateはOAuth 2.0由来のパラメーターで、nonceはOpenID Connect由来のパラメーターです。あくまでOpenID ConnectはOAuth 2.0の上に乗っかっている存在のため、たとえnonceでカバーできようとも互換性のためstateには手を出さなかったと考えることで似たようなパラメーターがある意味に納得することにしました。
TL;DR Kubernetesの認証はクライアント証明書やID/パスワードだけでなく、OpenID Connectに対応している。 RBACを設定することで、ユーザやグループによるアクセス制御ができる。 以下の設定が必要になる。 Keycloak(OpenID Connect IdP) kube-apiserver(Kubernetes APIサーバ) kubectl(Kubernetesクライアント) Getting Started Keycloak OpenID Connectで認証できるようにKeycloakを設定します。ここではKeycloakに以下のレルムとユーザが存在しており、ユーザはグループに入っているものとします。 レルム名: hello ユーザ名: foo グループ名: admin まず、新しいクライアントを作成します。Settingsタブで下表の内容を設定します。 項
概要 OAuth 2.0のAuthorization Code FlowとImplicit Flowについて自分なりに整理した。あと、OpenID Connect(主にImplicit Client)も調べた。 いつもなんとなく調べて、ざっくり理解するも、時間が経つと忘れるので、アウトプットしておく。とはいえ、仕様や用語とかの理解が甘くて自信はない。ベースはオライリーの本で勉強して、OAuth 2.0の仕様もちょこちょこみてた。 用語 用語の理解があいまいな気がするけど、この記事内では統一しておきたい… リソースサーバ GoogleやFacebookなどが提供しているAPIサーバ 認可サーバ(Authorization Server) GoogleやFacebookなどが提供している認可用のサーバ リソースオーナー(Resource Owner) GoogleやFacebookにリソースお
このプログラムによって、OpenID Connectを実装している事業者は、自身の実装がOpenID Connect標準仕様を満たすことを宣言することができます。このCertificationプログラムに参加することで、異なる実装間での相互運用性がより確実なものになるでしょう。 OpenID Certificationテストスイートは、デジタルアイデンティティに関わるシステム間の相互運用性を促進する目的で、スウェーデンのウメオ大学 (Umeå University) およびEUのGÉANTプロジェクトの協力により、オープンソースソフトウェアとして開発されました。 OpenID Connectは、セキュアでモバイルフレンドリーかつプライバシーにも配慮した、Identity技術のオープンスタンダードです。昨年のRSA Conference 2014での仕様確定以降、この仕様はGoogle Si
> Proven Scalability Scale to millionsOry Hydra powers Sainsbury's My ID with millions of customers and serving hundreds of users per second. Watch the video to learn more! > Start in minutes Interface the web securelyOry Hydra is the most advanced OAuth 2.0 and OIDC Certified® Server, and the only one that is open source. It integrates with any login system and allows you to interface with any ap
昨日、次世代フェデレーションプロトコルであるOpenID Connectが遂にコミットしたようだ。 画像は大好きな西島亜希ちゃんにワシの股間がコミットした瞬間を捉えたものである。 それに伴いかどうかは分からんが、OpenAMにも標準でOpenID Connectの機能が導入された模様。 そこで今回は、廉価で体験できるOSSを利用してOpenID Connectのサーバサイドの構築手順、クライアントサイドの実装サンプルを紹介する。 いきなりインストールの手順からブッこんでいくのも多少味気ないので、まずはビジョナリーからだ。 -認証認可連携とは何なのか- もしこんな質問を受けたらなんて答えるだろうか? 「安心安全のログインシステムを構築するには、どうすればよいですか?」 このご時世、模範解答は決まっている、「自分でログインシステムを作らないこと」だ。 多くの方がご存知のとおり、インタ
※ 本記事ではわかりやすさを優先するため仕様で規定されていない部分についても具体的な実装方法について記載しています。正確な仕様については OpenID Connect Session Management 1.0 - draft 28を参照ください。 2020/08/18追記 ※ draft 28 は既に最新ではなく、本記事で紹介している RP-Initiated Logout は別の仕様として OpenID Connect Session Management 1.0 から分離しています。内容も変わっていますので、それぞれ最新の仕様は以下を参照ください。 https://openid.net/specs/openid-connect-rpinitiated-1_0.html https://openid.net/specs/openid-connect-session-1_0.html
「OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本」を読んで、実際に Azure AD を使って OpenID Connect のフローを確認してみた。AzureOAuthopenid_connect技術書典7AuzreAD はじめに 私の認証・認可のプロトコルの前提知識として、SAML 2.0 の認証プロトコルのフローは、ほぼ把握できていますが、OAuth 2.0 と OpenID Connect については、実際にどんなフローで認可、認証しているのかが正直分からないという状況でした。 Auth屋(@authyasan)さんの「OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本」に出会うまでは。 上記書籍は、技術書展7 で販売されました。 現在は、下記 BOOTH というサイトから、電子版と物理版を購入することできます
Peter Williams氏の報告[1]によると、アメリカの不動産業界がWeb APIの認証にOpenID Connectを採用することを決定したようです。知らなかったんですが、不動産業界って、GDPベースでは米国最大のセクターなんですね。米国商務省経済分析局の 2014年ベースの統計[2]でGDPの13%を占めています。2番めのセクターが政府セクターで、12.9%。 米国産業別GDP(2014) ー不動産業界は13%でGDP比率トップ (出所)米商務省米国商務省経済分析局の数字を元に筆者 Williams氏の上記報告によると「5年がかり」の検討の結果[3]、不動産標準グループはOAuthのカスタムプロファイルを廃止して、OpenID Connectに標準化することを決めたとのこと。MicrosoftやAmazonのサポートによって、導入が非常に容易になったのが決め手だったようです。 C
こんにちは, ritouです. 天気悪いので前回の続きのエントリ書いちゃいます. PerlのOpenID Connect用ライブラリOIDC::Liteをざっくり紹介 - r-weblife 前回の紹介したOIDC::Liteを使って, OpenID Connectの動作を確認できるサンプルOP/RPを作ってみましたという話です. 何を作ったのか サンプルOP/RPはOIDC::Liteを用いたPerlアプリケーションです. RP側(OAuthでいうところのClient)の動作だけに興味があったり, OP側(OAuthでいうところのServer)のしくみだけ知りたい方もいるかもしれないのであえて別々にしましたが, 激しく一緒でよかったなと思っています. サンプルOP : GitHub - ritou/p5-oidc-lite-demo-client: OpenID Connect Demo
この記事はニフクラ等を提供している、富士通クラウドテクノロジーズ Advent Calendar 2022の2日目の記事です。 昨日は @ntoofu さんの パケットキャプチャからKubernetes APIのTLS通信を解析する でした。 私は TLS な時点でパケットキャプチャを諦めてしまいそうですが Linux の便利な仕組みと気合があれば TLS 1.3 のパケットキャプチャも可能だとわかり、とても有益でした。私もギークなエンジニア目指して頑張ります。 今日は OpenID Connect のクライアントをどう実装するかについて検討してみたいと思います。 FastAPI + SPA (Vue.js) でちょっとした社内ツールを開発した時に社内の認可基盤との OpenID Connect を用いたログイン連携機能を作りたかったのですが、実装のための情報が少なかったので記事に残してお
CloudFront と S3 を使ってサーバーレスなウェブサイトを構築し、特定のユーザーにのみ公開するために Google, GitHub など外部の認証プロバイダ (IdP) を使って認証をおこなう方法です。CloudFront ではリクエスト中継時に Lambda 関数を実行し認証などの処理をおこなうことができるため、それを使うことにします。 OpenID Connect による認証シーケンス CloudFront にアクセスした際のシーケンスは以下のようになります。 構築手順 OpenID Connect (OIDC) による認証をおこなう Lambda 関数を Widen/cloudfront-auth というツールを使って生成します。様々な認証プロバイダに対応していますが、ここでは Google で認証し、特定ドメインのメールアドレスのユーザーのみをアクセス許可してみます。 ※
こんばんは、ritouです。 OpenID ConnectはOAuth 2.0ベースなので、OAuth 2.0のClientが動作する環境であればどこでもOpenID Connectをできるはずです。 「AndroidアプリでOpenID Connectを導入したい!」って思ったときに昔話を思い出して「あれ?OpenIDってWebだけのしくみだっけ?じゃあダメか」とか言われないように試しに作ってみました。ログインさせるだけで良いかなと思ったので、とりあえずTitanium Studioで作りました。 ここではざっくり何やってるかを説明していきます。 1. OP特定のための識別子入力 + DIscovery + Dynamic Client Registration まずはユーザーがOPの識別子なり、メールアドレスなり、それにつながってる自分のドメインを入力します。 この後、このアプリ自体が
はじめに アプリケーションサービス部の宮本です。 今回は先日一般公開となった GitHub Actions の OpenID Connect サポートについてご紹介します。GitHub Actions から AWS リソースの操作を行なっている方にとっては必見のアップデートです。 github.blog 2023-08-10 更新 AWS 側で自動的に証明書の検証をしてくれるようになりました。そのため、明示的に2つの中間証明書を指定する必要がなくなったためテンプレートをアップデートしました。 2023-06-28 更新 GitHub より以下アナウンスがあり、2つの中間証明書に対応する必要があるためテンプレートをアップデートしました。 github.blog 2022-09-09 更新 2022/01 に GitHub の OIDC プロバイダの証明書が更新された為、CloudFormat
Abstract OpenID Connect 1.0 は, OAuth 2.0 プロトコルの上にシンプルなアイデンティティレイヤーを付与したものである. このプロトコルは Client が Authorization Server の認証結果に基づいて End-User のアイデンティティを検証可能にする. また同時に End-User の必要最低限のプロフィール情報を, 相互運用可能かつ RESTful な形で取得することも可能にする. この仕様は, OpenID Connect の主要な機能である OAuth 2.0 上で End-User の情報伝達のために Claim を用いる認証機能 を定義する. この仕様はまた, OpenID Connect を利用するための Security, Privacy Considerations を説明する. Table of Contents
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く