プロダクトの認証認可下調べ
主に認証にフォーカスする
アーキテクチャ・micro services
認証と認可と課金とコアドメインを分離したシステムは勝てるという話
mercari 実践:マイクロサービス認可基盤
セキュアなトークン管理方法
Microservices における認証と認可の設計パターン
line LINEでログイン”をさらに進化させる「Profile+」の機能と仕組み
uber The Architecture of Uber’s API gateway
OAuth 2.0 / OIDC 実装の新アーキテクチャー
知っておきたい7つのID連携実装パターン
yahoo: Yahoo! JAPANのID連携を支える技術と仕組み
Centralized Universal Login vs. Embedded Login
組織
なんでもやるがなんでもはやらない?CADDi の Platform チームは、何をするチームなのか?
OAuth、OpenID の基本
認証と認可の超サマリ OAuth とか OpenID Connect とか SAML とかをまとめてざっと把握する本
OAuth & OpenID Connect 関連仕様まとめ
OAuth2の次に来ると言われる認可プロトコルGNAPとはなにか
30分でOpenID Connect完全に理解したと言えるようになる勉強会
一番分かりやすい OpenID Connect の説明
Microsoft ID の OIDC ドキュメント
ID連携の標準化仕様紹介とセキュアな実装のためのアプローチ 2021
情報が多いところ
https://about.yahoo.co.jp/tag/list/?tag=認証技術
https://ritou.hatenablog.com/
実装と詳細、考え方
LINE Loginで安心安全な認証を実装するためにWebアプリケーションによくある脆弱性とその防ぎかた
OAuth 認証を真面目に考える
細かく言えば認証とログインは別のものであると捉えています。
一般的な認証というのは、「システムを操作している人物が確かにこの ID の持ち主であると確認すること」を指します。あえて言えば、認証というのはその「瞬間」のことを指します。
一方でログインは、「その結果をいつまで信頼するのかというポリシーを適用し、認証に期間を与えること」を指します。
API Tokens: A Tedious Survey
ファーストパーティーなアプリが使うOAuth/OIDCについてのお話 2019 春
Web APIにおける認可の現状確認 2019 春
Auth0のSilent Authentication (サイレント認証)とRefresh Token Rotation (リフレッシュトークンローテーション)を完全に理解した (い)
【第二弾】OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る
認可という言葉は別の文脈で使われることがあります。その文脈では、「誰が何の権限を持っているか (who has what permissions)」という情報を扱うために認可という言葉を使います。これは、OAuth の文脈での認可「誰が誰に何の権限を与えるか (who grants what permissions to whom)」とは異なります。厄介なことに、このどちらも認可と呼ばれ、英語でも両方とも authorization という単語が使われます。
Implementing App-to-App Authorisation in OAuth2/OpenID Connect
現在仕様策定中の OpenID Connect RP-Initiated Logout 1.0 とは
OpenID Connect の Shared Signals and Events
OpenID Connect Self-issued OP概要 ~OpenID Technight #15より~
次世代 Web カンファレンス 2019 AuthN/Z セッション (#nwc_auth)
Do You Need OAuth2?
サーバサイドでJWTの即時無効化機能を持っていないサービスは脆弱なのか?
C向けサービスで 使われている認証方式と安全な使い方
セキュリティ
Threat Models and Security Profiles
Passwords must be checked against a database of compromised secrets such as Have I Been Pwnd:
Have I beenPwnd / API
Sudo mode
ユーザー認証の緊急事態に備えて提供しておきたい、セッション管理とセキュリティイベントログについて
現在仕様策定中のSecurity Event Token (SET) とは?
パスワード無効設定 (Yahoo)
スクリーニング
リスト攻撃事案から得られるユーザー周りの設計の学び
メアドなどのスクリーニング対策を意識しつつ WebAuthn のログインフローを考える
オープンリダイレクト
フィッシングや情報漏洩に繋がる攻撃 オープンリダイレクトの概要と対策
ライフサイクル
Identity Lifecycleを意識したID管理機能の設計
https://www.iso.org/standard/77582.html
アカウントリカバリ
WebAuthn など新しい認証方式を受け入れる際の「アカウントリカバリー」の考え方
なぜパスワード認証をやめようと思うとリカバリーが不安になるのかに話を戻すと、このように1つの認証方式だけだと思っていた「パスワード認証」は既に複数の認証方式を並列にしている状態であり、一方で WebAuthn は単一の認証方式しか存在しないことが不安を感じる理由なのではないかと思うのです。
Account Recovery is just another Authentication Method
github: 2 要素認証クレデンシャルをなくした際のアカウントの回復
ガイドライン
Digital Identity Guidelines
Authentication and Lifecycle Management
Verifierは,オフライン攻撃に対して耐性をもった形式で記憶シークレットを保存するものとする(SHALL).シークレットは, ソルトを追加したうえで適切な一方向の鍵導出関数を利用してハッシュされるものとする(SHALL),鍵導出関数は,パスワード,ソルト,コストファクタを入力して,パスワードハッシュを生成する.例えばSP800-132で記載されているPBKDF2のようなApprove済みハッシュを用いてハッシュ化されるものとする(SHALL).ソルト値は32ビット以上のランダム値で,承認済み(approved)の乱数生成器を用いて生成され,ハッシュ結果とともに記録される.少なくとも繰り返し10000回のハッシュ関数を適用すべきである(SHOULD)....
8 脅威とセキュリティに関する考慮事項
10. Usability の考慮事項
付録 A—記憶シークレットの強度
バイオメトリクスの利用
バイオメトリックの比較は確率的なものであるが,他のAuthentication要素は決定的なものである.
単独での Authenticator としては認められない
バイオメトリクスは物理的なAuthenticatorを用いた多要素Authentication(something you have)の一部としてのみ利用されるものとする(SHALL).
ID Federation
AWS federation comes to GitHub Actions
https://github.com/github/roadmap/issues/249
IDaaS, OSS
OpenID Libraries, Products, and Tools
Okta
Customer Identity という製品がプロダクト向けのよう
Auth0 の買収
Keycloak
認証・認可基盤に Keycloak を使って開発生産性を上げた話
Ory
いくつかのプロダクト群からなり、OSS になっている。go 実装
Hydra
OAuth2/OIDC のフロー。ユーザ管理やログインの詳細は持たない
Kratos
Identity & User Management
SuperTokens
現在は SSO / OIDC には対応していないように見える
Authboss
go のライブラリ。 OAuth, MFA
WebAuthn, FIDO2
WebAuthnことはじめ
https://ritou.hatenablog.com/archive/category/WebAuthn
https://github.com/line/line-fido2-server
WebAuthnを用いたパスワードレス生体認証のユーザビリティ調査
その他(公的)個人認証
パスポートと公開鍵の議論ポイント
公的個人認証サービスによる電子証明書(民間事業者向け)
マイナンバーカードで署名する
各サービスのアカウント周りの仕様・挙動
Yahoo! JAPAN
アカウント登録は、SMS から始まる
Email でのログインもオプションで設定ができる
パスワードは設定しない
LINE
「パスワードでログイン」はOFFにできる
アプリ上でのパスワード変更: Face ID が要求される。現在のパスワードは必要ない。
他の端末でログインする場合は、ログイン済みの端末を用意して、ワンタイムコードかQRコードでログイン