MastraAuthOkta クラスと MastraRBACOkta クラス
MastraAuthOkta クラスMastraAuthOkta クラスへの直接リンク
MastraAuthOkta クラスは、Okta を使用して Mastra の認証を提供します。暗号化されたセッション Cookie を使用する OAuth 2.0 / OIDC ログインフローを実装し、auth オプションを介して Mastra サーバーと統合します。
使用例使用例への直接リンク
import { Mastra } from '@mastra/core'
import { MastraAuthOkta } from '@mastra/auth-okta'
export const mastra = new Mastra({
server: {
auth: new MastraAuthOkta({
domain: process.env.OKTA_DOMAIN,
clientId: process.env.OKTA_CLIENT_ID,
clientSecret: process.env.OKTA_CLIENT_SECRET,
redirectUri: process.env.OKTA_REDIRECT_URI,
}),
},
})
必要な環境変数が設定されている場合は、コンストラクターパラメーターを省略できます。その場合は、引数なしで new MastraAuthOkta() を使用します。
コンストラクターパラメーターコンストラクターパラメーターへの直接リンク
domain?:
dev-123456.okta.com)。issuer URL と API エンドポイントの構築に使用されます。clientId?:
clientSecret?:
issuer?:
redirectUri?:
scopes?:
apiToken?:
getUser() が ID に基づいてユーザーデータを返すために必要です。session?:
cookieName?:
cookieMaxAge?:
cookiePassword?:
secureCookies?:
Secure フラグを設定します。name?:
環境変数環境変数への直接リンク
コンストラクターオプションが指定されていない場合、次の環境変数が自動的に使用されます。
OKTA_DOMAIN:
dev-123456.okta.com)。Okta 管理コンソールで確認できます。OKTA_CLIENT_ID:
OKTA_CLIENT_SECRET:
OKTA_ISSUER?:
https://{domain}/oauth2/default です。OKTA_REDIRECT_URI:
OKTA_COOKIE_PASSWORD?:
OKTA_API_TOKEN?:
認証フロー認証フローへの直接リンク
MastraAuthOkta は、次の順序でリクエストを認証します。
- セッション Cookie:暗号化されたセッション Cookie を読み取り、復号します。セッションが有効で期限切れでない場合、ユーザーは認証されます。
- JWT フォールバック:セッション Cookie が存在しない場合、
Authorizationヘッダーのトークンを Okta の JWKS エンドポイントに対して検証します。
認証後、authorizeUser はユーザーが有効な oktaId を持っていることを確認します。追加のロジックを実装するには、カスタム authorizeUser 関数を指定します。
OktaUser 型oktauser-typeへの直接リンク
OktaUser 型は、基本の EEUser インターフェースを Okta 固有のフィールドで拡張します。
id:
sub クレームに対応)。oktaId:
id と同じ)。email?:
name?:
avatarUrl?:
groups?:
groups クレームから設定されます。MastraRBACOkta クラスMastraRBACOkta クラスへの直接リンク
MastraRBACOkta クラスは、Okta グループを Mastra 権限にマッピングします。Okta API からユーザーグループを取得し、設定可能なロールマッピングに照らして解決します。MastraAuthOkta またはその他の Auth Provider と組み合わせて使用します。
RBAC には、有効な Enterprise Edition ライセンスが必要です。開発環境ではライセンスなしで動作するためローカルで試せますが、本番環境ではライセンスが必要です。詳細については、営業担当者にお問い合わせください。
使用例使用例への直接リンク
MastraRBACOkta を rbac オプションに渡し、Auth Provider と組み合わせて使用します。
import { Mastra } from '@mastra/core'
import { MastraAuthOkta, MastraRBACOkta } from '@mastra/auth-okta'
export const mastra = new Mastra({
server: {
auth: new MastraAuthOkta(),
rbac: new MastraRBACOkta({
roleMapping: {
Admin: ['*'],
Engineering: ['agents:*', 'workflows:*', 'tools:*'],
Viewer: ['agents:read', 'workflows:read'],
_default: [],
},
}),
},
})
別の Auth Provider で Okta RBAC を使用するには、他の Provider のユーザーオブジェクトから Okta ユーザー ID を解決する getUserId 関数を渡します。
import { MastraAuthAuth0 } from '@mastra/auth-auth0'
import { MastraRBACOkta } from '@mastra/auth-okta'
export const mastra = new Mastra({
server: {
auth: new MastraAuthAuth0(),
rbac: new MastraRBACOkta({
getUserId: user => user.metadata?.oktaUserId || user.email,
roleMapping: {
Engineering: ['agents:*', 'workflows:*'],
Admin: ['*'],
_default: [],
},
}),
},
})
コンストラクターパラメーターコンストラクターパラメーターへの直接リンク
roleMapping:
'_default' を使用します。'*'(フルアクセス)や 'agents:*'(Agent に対するすべての操作)のようなワイルドカードをサポートします。domain?:
apiToken?:
getUserId?:
oktaId または id にフォールバックします。