タグ

ブックマーク / qiita.com/TakahikoKawasaki (22)

  • OpenAPI仕様と公開されているスキーマファイル群の同期が取れていない件 - Qiita

    "paths": { "$comment": "https://spec.openapis.org/oas/v3.1.0#paths-object", "type": "object", "patternProperties": { "^/": { "$ref": "#/$defs/path-item" } }, "$ref": "#/$defs/specification-extensions", "unevaluatedProperties": false }, "#/$defs/path-item" となっている箇所は "#/$defs/path-item-or-reference" であるべきなのではないか、という疑念だ。 そこで、OpenAPI コミュニティの Slack に参加して質問したところ、「その問題は PR 3355: Fix 3.1 Path Item schema

    OpenAPI仕様と公開されているスキーマファイル群の同期が取れていない件 - Qiita
  • いつか起業したいエンジニアへ - Qiita

    はじめに 34 歳のとき、勤めていた会社の経営が傾き早期退職を促されたのを契機に独立しました。その後、41 歳で Authleteオースリート 社を設立しました。諸般の事情で現在も Authlete 社の代表取締役という肩書きを持っていますが、経営者的な仕事は他の人に任せ (参照: シリコンバレーのプロフェッショナル CEO を迎えて米国市場に挑戦する日のスタートアップの話)、50 歳目前の現在もプログラマとしてコードを書き続けています。 Authlete 社設立 (2015 年 9 月) から 8 年半弱経過したものの、まだまだ小さな会社で道半ばであるため、起業家として何か語るのは時期尚早ではあるものの、軽い体調不良が長引く中、『自分のエンジニアとしてキャリアを振り返ろう!』という記事投稿キャンペーンを見かけ、生きているうちに子供世代のエンジニアの方々に何か書き残しておこうと思い、文章

    いつか起業したいエンジニアへ - Qiita
  • RFC 8693 OAuth 2.0 Token Exchange - Qiita

    はじめに RFC 8693 OAuth 2.0 Token Exchange は、トークンエンドポイントに既存のトークンを提示して新しいトークンを取得する方法を定義している技術仕様です。入力として提示するトークンはサブジェクトトークン (Subject Token) と呼ばれます。任意ですが、もう一つトークンを入力として与えることができ、そちらはアクタートークン (Actor Token) と呼ばれます。 次の図はトークン交換フローを示しています。 当仕様はとても柔軟です。逆に言うと、安全なトークン交換に必要となる詳細事項について当仕様は定義していません。そのため、認可サーバーの実装はそれぞれ独自規則を定め、仕様を補完しなければなりません。 仕様 トークンタイプ トークン交換フローには 3 つのトークンが登場します。サブジェクトトークン、アクタートークン、そして新しく発行されるトークンです

    RFC 8693 OAuth 2.0 Token Exchange - Qiita
  • 自己署名証明書を表すJWKの作り方 - Qiita

    { "kty": "EC", "crv": "P-256", "x": "btjiy3sbUjxc4LKyDujKCzgh0Nv0WiVgY5k61-ZRUkI", "y": "Gck9a3RVmUADrHp2XPBOFxb31QIzUk6KtiWU320Qc2s", "x5c": [ "MIIBjzCCATWgAwIBAgIUeaASdMyJhml/k/PQ46j9f2XJzPQwCgYIKoZIzj0EAwIwHTEbMBkGA1UEAwwSY2xpZW50LmV4YW1wbGUuY29tMB4XDTIyMDYwOTA0MTE1OVoXDTI1MDMwNTA0MTE1OVowHTEbMBkGA1UEAwwSY2xpZW50LmV4YW1wbGUuY29tMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEbtjiy3sbUjxc4LKyDujKCzgh0Nv0WiV

    自己署名証明書を表すJWKの作り方 - Qiita
  • OAuth アクセストークンの実装に関する考察 - Qiita

    はじめに この記事では、OAuth 2.0 のアクセストークンの実装に関する考察を行います。記事の執筆者人による動画解説も『OAuth & OIDC 勉強会 【アクセストークン編】』で公開しておりますので、併せてご参照ください。 English version of this article is here → "OAuth Access Token Implementation". 1. アクセストークン実装方法の分類 OAuth のアクセストークン※1の実装方法は認可サーバーの実装依存です。 実装依存ではありますが、RFC 6749 の『1.4. Access Token』にある次の記述が示唆するように、 The token may denote an identifier used to retrieve the authorization information or may

    OAuth アクセストークンの実装に関する考察 - Qiita
  • JAR (JWT-Secured Authorization Request) に関する実装者の覚書 - Qiita

    はじめに この記事は、JAR と呼ばれる技術仕様『RFC 9101 The OAuth 2.0 Authorization Framework: JWT-Secured Authorization Request (JAR)』に関する実装者の覚書です。(英語版はこちら) OpenID Connect Core 1.0 (OIDC Core) と JAR の間には幾つか衝突する部分があります。既存の認可サーバーだけでなく OpenID 互換性検査スイートにさえも影響を及ぼすため、OAuth コミュニティーはそれらの破壊的変更について長い間論争を続けました。 衝突する部分とは何か?それらはどのように解決されたのか? JAR 仕様の未来の読者や実装者のため、この記事はそれらについて記述します。 JAR とは? JAR とは、認可リクエストパラメーター群を一つの署名付き JWT にまとめるための仕

    JAR (JWT-Secured Authorization Request) に関する実装者の覚書 - Qiita
  • 図解 X.509 証明書 - Qiita

    はじめに X.509 証明書について解説します。(English version is here → "Illustrated X.509 Certificate") ※ この記事は 2020 年 7 月 1 日にオンラインで開催された Authlete 社主催の『OAuth/OIDC 勉強会【クライアント認証編】』の一部を文書化したものです。勉強会の動画は公開しており、X.509 証明書については『#4 X.509 証明書(1)』と『#5 X.509 証明書(2)』で解説しているので、動画解説のほうがお好みであればそちらをご参照ください。 1. デジタル署名(前提知識) この記事を読んでいただくにあたり、デジタル署名に関する知識が必要となります。つまり、「秘密鍵を用いて生成された署名を公開鍵で検証することにより」、「対象データが改竄されていないこと」や「秘密鍵の保持者が確かに署名したこと

    図解 X.509 証明書 - Qiita
  • OAuth 2.0 の認可レスポンスとリダイレクトに関する説明 - Qiita

    はじめに この記事では、OAuth 2.0 の認可サーバーが返す認可レスポンスと、それに伴うリダイレクト処理について説明します。 動画解説のほうがお好みであれば、オンライン勉強会『OAuth & OIDC 勉強会 【認可リクエスト編】』の『3. リダイレクション』をご覧ください。 RFC 6749(The OAuth 2.0 Authorization Framework)には、アクセストークン発行フローが幾つか定義されています(参考:OAuth 2.0 全フローの図解と動画)。 それらのうち、認可コードフロー(RFC 6749, 4.1. Authorization Code Grant)とインプリシットフロー(RFC 6749, 4.2. Implicit Grant)では、クライアントアプリケーションが Web ブラウザを介して認可サーバーの認可エンドポイント(RFC 6749, 3

    OAuth 2.0 の認可レスポンスとリダイレクトに関する説明 - Qiita
  • 実装者による Financial-grade API (FAPI) 解説 - Qiita

    注記: 2021 年 3 月に公開された FAPI 1.0 最終版に対応するため、記事の内容を大幅に更新しました。タイトルも『世界最先端の API セキュリティ技術、実装者による『FAPI(Financial-grade API)』解説』から『実装者による Financial-grade API (FAPI) 解説』に変更しました。記事の英語版は "Financial-grade API (FAPI), explained by an implementer" です。 はじめに Financial-grade API(通称 FAPI; ファピ)は、OpenID Foundation の Financial-grade API ワーキンググループが策定した技術仕様です。OAuth 2.0 と OpenID Connect(以降 OIDC)を基盤とし、より高い API セキュリティーを必

    実装者による Financial-grade API (FAPI) 解説 - Qiita
  • OAuth 2.0 / OIDC 実装の新アーキテクチャー - Qiita

    1.『On-Premises』パターンは、自分でマシンを用意し、そこに認可サーバーのソフトウェアをインストールして運用する方法です。 2.『Hosted Server』パターンは、マシンの物理的な運用はクラウドサービスにまかせ、そのマシン上に認可サーバーのソフトウェアをインストールして運用する方法です。 例えば AWS の EC2 インスタンスに OpenAM をインストールして運用する場合、このパターンに該当します。 3.『Hosted Service』パターンは、認可サーバー自体がクラウドサービスとして提供されるパターンです。 Okta や Auth0 がこのパターンに該当します。 4.『Semi-Hosted Service』パターンは、認可サーバーの主要機能を提供するサーバーが存在するものの、一部をローカルで実装するというパターンです。 Richer 氏が明示的に言及しているように

    OAuth 2.0 / OIDC 実装の新アーキテクチャー - Qiita
  • 【第二弾】OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る

    はじめに 記事は「OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る」の続編となります。保護リソースエンドポイント (protected resource endpoint)、いわゆる世の中でいうところの (狭義の) Web API の実装に関する話題がメインとなります。 1. もう一つの認可 1.1. アカウント属性文脈での認可 混乱を避けるため前記事では敢えて言及しませんでしたが、認可という言葉は別の文脈で使われることがあります。その文脈では、「誰が何の権限を持っているか (who has what permissions)」という情報を扱うために認可という言葉を使います。これは、OAuth の文脈での認可「誰が誰に何の権限を与えるか (who grants what permissions to whom)」とは異なります。厄介なことに、このど

    【第二弾】OAuth 2.0 + OpenID Connect のフルスクラッチ実装者が知見を語る
  • Identity Assurance - eKYC 時代の OpenID Connect - Qiita

    はじめに 2018 年 11 月 30 日に『犯罪による収益の移転防止に関する法律』(犯罪収益移転防止法/犯収法)を改正する命令が公表されました。この改正で「オンラインで完結する自然人の人特定事項の確認方法の追加」が行われ、eKYC(electronic Know Your Customer)の根拠法となりました。 そして、当改正から約一年後の 2019 年 11 月 11 日、世界標準仕様策定団体である OpenID Foundation から『OpenID Connect for Identity Assurance 1.0』という技術仕様の第一版が公開されました。また、これを受けて同団体内に新たに『eKYC and Identity Assurance ワーキンググループ』が設置されました。それから約半年後の 2020 年 5 月 19 日には、同仕様の第二版が公開されました。 犯

    Identity Assurance - eKYC 時代の OpenID Connect - Qiita
  • 図解デバイスフロー(RFC 8628) - Qiita

    はじめに 2019 年 8 月に公開された RFC 8628(OAuth 2.0 Device Authorization Grant)、いわゆる『デバイスフロー』(Device Flow)について説明します。 デバイスフローは、RFC 6749(The OAuth 2.0 Authorization Framework)で定義されているフロー群と同様に、アクセストークンを発行するためのフローです。 そもそも別途新たにフローを作成した理由ですが、それについては仕様書の冒頭に次のように書かれています。 The OAuth 2.0 device authorization grant is designed for Internet-connected devices that either lack a browser to perform a user-agent-based author

    図解デバイスフロー(RFC 8628) - Qiita
  • [前編] IDトークンが分かれば OpenID Connect が分かる - Qiita

    はじめに 「解説記事を幾つも読んだけど OpenID Connect を理解できた気がしない」― この文書は、そういう悩みを抱えたエンジニアの方々に向けた OpenID Connect 解説文書です。概念的・抽象的な話を避け、具体例を用いて OpenID Connect を解説していこうと思います。 この文書では、JWS (RFC 7515)、JWE (RFC 7516)、JWK (RFC 7517)、JWT (RFC 7519)、ID トークンの説明をおこないます。 追記(2020-03-20) この記事の内容を含む、筆者人による『OAuth & OIDC 入門編』解説動画を公開しました! 1. 『ID トークン』を発行するための仕様 一般の方々に対しては「OpenID Connect は認証の仕様である」という説明で良いと思います。一方、技術的な理解を渇望しているエンジニアの方々に対

    [前編] IDトークンが分かれば OpenID Connect が分かる - Qiita
  • 一番分かりやすい OpenID Connect の説明 - Qiita

    はじめに 過去三年間、技術者ではない方々に OpenID Connect(オープンアイディー・コネクト)の説明を繰り返してきました※1。 その結果、OpenID Connect をかなり分かりやすく説明することができるようになりました。この記事では、その説明手順をご紹介します。 ※1:Authlete 社の創業者として資金調達のため投資家巡りをしていました(TechCrunch Japan:『APIエコノミー立ち上がりのカギ、OAuth技術のAUTHLETEが500 Startups Japanらから1.4億円を調達』)。 2017 年 10 月 23 日:『OpenID Connect 全フロー解説』という記事も公開したので、そちらもご参照ください。 説明手順 (1)「こんにちは! 鈴木一朗です!」 (2)「え!? 当ですか? 証明してください。」 (3)「はい! これが私の名刺です!

    一番分かりやすい OpenID Connect の説明 - Qiita
  • OAuth & OpenID Connect 関連仕様まとめ - Qiita

    はじめに OAuth や OpenID Connect に関連する仕様を紹介していこうと思います。 仕様はたくさんあるものの、ほとんどオプショナルです。しかし、「認可サーバーを実装する際は、RFC 6749 だけではなく、認可コード横取り攻撃への対抗策である RFC 7636 も実装すべきである」* という点は強調しておきたいと思います。 * 「PKCE: 認可コード横取り攻撃対策のために OAuth サーバーとクライアントが実装すべきこと」という記事もご参照ください。 1. OAuth 2.0 (RFC 6749) OAuth 2.0 の仕様の体は RFC 6749 (The OAuth 2.0 Authorization Framework) です。RFC 6749 の解説記事は世の中にたくさんあるので、ここでは要点だけ手短に紹介します。 RFC 6749 は、アクセストークンを発行

    OAuth & OpenID Connect 関連仕様まとめ - Qiita
  • OAuth 2.0 の勉強のために認可サーバーを自作する - Qiita

    逆に、RFC 6749 以外で定義されている認可フローをサポートする場合、新たに別のエンドポイントの実装が必要になることがあります。例えば CIBA(Client Initiated Backchannel Authentication)ではバックチャネル認証エンドポイント(backchannel authentication endpoint)、デバイスフロー(RFC 8628)ではデバイス認可エンドポイント(device authorization endpoint)の実装が求められます。 この記事では、認可エンドポイントとトークンエンドポイントを実装します。サポートする認可フローは認可コードフローのみ、サポートするクライアント・タイプはパブリックのみとします。 2. 注意点 下記の理由、および書かれていないその他の理由により、実装は商用利用には適していません。 セキュリティー上必須

    OAuth 2.0 の勉強のために認可サーバーを自作する - Qiita
  • OAuth 2.0 クライアント認証 - Qiita

    はじめに この記事では、OAuth 2.0 の『クライアント認証』について説明します。 RFC 6749 に記述されているクライアント認証方式のほか、クライアントアサーションやクライアント証明書を用いるクライアント認証方式についても説明します。 1. クライアント認証方式 1.1. トークンエンドポイント 認可サーバーがあります。 認可サーバーからアクセストークンの発行を受けたいクライアントアプリケーションがあります。 アクセストークンは、幾つかの例外を除き、認可サーバーのトークンエンドポイントから発行されます。そのため、認可サーバーはトークンエンドポイントを用意します。 クライアントアプリケーションは、アクセストークンの発行を受けるために、トークンエンドポイントにトークンリクエストを投げます。 認可サーバーは、トークンレスポンスを返します。この応答の中に、アクセストークンが含まれます。

    OAuth 2.0 クライアント認証 - Qiita
  • 一番分かりやすい OAuth の説明 - Qiita

    はじめに 過去三年間、技術者ではない方々に OAuth(オーオース)の説明を繰り返してきました※1,※2。その結果、OAuth をかなり分かりやすく説明することができるようになりました。この記事では、その説明手順をご紹介します。 ※1:Authlete 社の創業者として資金調達のため投資家巡りをしていました(TechCrunch Japan:『APIエコノミー立ち上がりのカギ、OAuth技術のAUTHLETEが500 Startups Japanらから1.4億円を調達』)。Authlete アカウント登録はこちら! ※2:そして2回目の資金調達!→『AUTHLETE 凸版・NTTドコモベンチャーズ・MTIからプレシリーズA資金調達』(2018 年 2 月 15 日発表) 説明手順 (1)ユーザーのデータがあります。 (2)ユーザーのデータを管理するサーバーがあります。これを『リソースサーバ

    一番分かりやすい OAuth の説明 - Qiita
  • OAuth 2.0 全フローの図解と動画 - Qiita

    RFC 6749 (The OAuth 2.0 Authorization Framework) で定義されている 4 つの認可フロー、および、リフレッシュトークンを用いてアクセストークンの再発行を受けるフローの図解及び動画です。動画は YouTube へのリンクとなっています。 English version: Diagrams And Movies Of All The OAuth 2.0 Flows 追記 (2019-07-02) 認可決定エンドポイントからクライアントに認可コードやアクセストークンを渡す方法については、別記事『OAuth 2.0 の認可レスポンスとリダイレクトに関する説明』で解説していますので、ご参照ください。 追記(2020-03-20) この記事の内容を含む、筆者人による『OAuth & OIDC 入門編』解説動画を公開しました! 1. 認可コードフロー RF

    OAuth 2.0 全フローの図解と動画 - Qiita