Open1

Go 製の認証 / 認可 OSS「ORY」

shellingfordshellingford

概要

ORY は以下の4つのエコシステムを提供している。

  • Ory Kratos:アイデンティティ管理サーバー
  • Ory Hydra:OAuth 2.0 および OpenID Connect プロバイダー
  • Ory Oathkeeper:ID およびアクセスプロキシ
  • Ory Keto:アクセス制御サーバー

Ory Kratos

ID 管理サーバー Ory Kratos を使用すると、安全かつ簡単な方法でユーザー管理、ログイン、登録を実装できます。Ory Kratos は、ログインとログアウト、アカウントのアクティベーション、MFA/2FA、プロファイルとセッションの管理、ユーザーが直面するエラー、アカウント回復方法などのすべての一般的なフローを実装します。選択した言語またはフレームワークでその単純な UI を作成するだけです。

Ory Hydra

Ory Hydraは、OAuth 2.0 および OpenID Connect プロバイダになることを可能にします。もしあなたが、基本的なウェブアプリではなく、異なるデバイス上で動作するもの、マシンとマシンのインタラクションを持つもの、あるいはサードパーティの開発者があなたのAPIを使用できるようにするもの(そしてその対価を支払うもの)を書いているのであれば、これはあなたが探しているものです。しかし、Ory Hydra は ID 管理ではない。その代わりに、既存の ID 管理(例えば、ORY Kratos や MySQL + PHP ログインサービス、Federated SAML SSO など)に接続し、安全で OpenID 認証された方法で、アクセス、リフレッシュ、IDトークンを発行することができます。

Ory Oathkeeper

ユーザーが、例えば React / Angular アプリと REST API を通じてアプリケーションにアクセスする場合、ユーザーを認証し、必要なパーミッションを持っているかどうかをチェックする方法が必要になる(以降、これを「アクセス・コントロール」と呼ぶ)。1 つの方法は、もちろんコードにこれらのチェックを追加することだ。もう 1 つの方法は、5MB の Ory Oathkeeper Docker Image をデプロイし、API エンドポイントのアクセスルール(例えば、OAuth 2.0 Access Token + 特定のパーミッション、有効な JSON Web Token、有効なSAML アサーションなど)を定義し、ファイアウォールのようにサービスの前に置くことだ。

Ory Keto

シンプルな権限システムから始めるかもしれません。匿名ユーザー(ログインしていない)、認証済みユーザー(ログインしている)、管理者という異なるロールがあります。しかしある時点で、システムはより複雑になります。ユーザーの組織、アクセス時間(銀行のタイムロックを想像してほしい)、または課金プランに基づいてパーミッションを区別したい。Amazon Web Services や Google のような大手クラウド・プロバイダーは、「アクセス・コントロール・ポリシー」を使ってこれを解決している。これらのポリシーは柔軟なルールを表し、複雑なアクセス制御シナリオを表現することができる。もちろん、自分でシステムを書いたり、RBAC、ACL、ABAC、ACP について少し時間をかけて勉強したりすることもできるし、Ory Keto を用いて簡単に実装することもできる。Ory Ketoは、様々なタイプの認証情報(例えば OAuth 2.0 Access Tokens、SAML Assertion、JSON Web Tokens など)を認証することができ、高度な権限ルール(「アクセス制御ポリシー」)を定義することができる。そしてもちろん、特定のクレデンシャルセット(例えば OAuth 2.0 Access Token)がそのブログ記事の変更を許可されているかどうかを教えてくれるエンドポイントもあります。