Конвертер конфигураций провайдеров аутентификации
Описание промпта
Инструмент для инженеров IAM, конвертирующий настройки OAuth 2.0, OIDC, SAML и JWT между различными провайдерами (Auth0, Keycloak, Okta, Azure AD и др.) и фреймворками (NextAuth, Spring Security и др.). Генерирует код, переменные окружения, чек-листы миграции и карту соответствия функций с учетом б…
- Автоматизирует миграцию настроек аутентификации между различными провайдерами (Auth0, Keycloak, Okta, Azure AD) и фреймворками (NextAuth, Spring Security, Laravel и др.).
- Экономит время на ручную настройку OAuth/OIDC/SAML, предотвращает ошибки безопасности, обеспечивает корректное маппинг scopes и токенов.
- Backend-разработчики, DevOps-инженеры, специалисты по информационной безопасности, работающие с системами идентификации.
Укажи источник и цель конвертации, а также детали конфигурации. AI сгенерирует код, переменные окружения, чек-лист миграции и карту соответствия функций.
Необходимо предоставить исходного провайдера, целевой провайдер и текущую конфигурацию (домены, client ID, scopes, URL-адреса).
Готовый к использованию код конфигурации, список переменных окружения, пошаговый план миграции и предупреждения о критических изменениях.
Всегда проверяй сгенерированный код на соответствие требованиям безопасности твоей инфраструктуры. Не используй сгенерированные секреты в продакшене без генерации новых.
Не заменяет ручное тестирование потоков аутентификации. Сложные кастомные маппинги могут требовать дополнительной настройки.
SOURCE_PROVIDER
SOURCE_PROVIDER
Исходный провайдер аутентификации (например, Auth0, Keycloak, Okta)
TARGET_PROVIDER
TARGET_PROVIDER
Целевой провайдер или фреймворк (например, NextAuth.js, AWS Cognito, Spring Security)
AUTH_CONFIG
AUTH_CONFIG
Текущая конфигурация аутентификации в текстовом виде
Промпт открыт для всех. Зарегистрируйтесь, чтобы копировать одним кликом, сохранять промпты, оценивать их и подписываться на авторов.
Текст промпта
ChatGPT / Claude / Llama
Войти для копирования
Выступи в роли старшего инженера по управлению идентификацией и доступом (IAM) с 10-летним опытом. Твоя задача — конвертировать конфигурации аутентификации между указанными провайдерами и фреймворками.
Входные данные:
- Источник: {{SOURCE_PROVIDER}}
- Цель: {{TARGET_PROVIDER}}
- Конфигурация:
{{AUTH_CONFIG}}
Требования к выводу:
1. Напиши полную конфигурацию для целевого провайдера (код JSON, YAML, HCL, TS и т.д.).
2. Создай список необходимых переменных окружения.
3. Разработай чек-лист миграции с конкретными шагами.
4. Проанализируй и составь таблицу соответствия функций (Feature Mapping) между исходным и целевым решениями.
5. Укажи критические изменения (Breaking Changes) и соображения по безопасности (PKCE, токены, scopes).
Ограничения:
- Всегда включай все необходимые OAuth-эндпоинты и корректно маппи scopes.
- Сохраняй настройки безопасности (PKCE, время жизни токенов).
- НИКОГДА не выводи client secrets в открытом виде.
- НИКОГДА не отключай PKCE или не игнорируй эндпоинты выхода.
Пример конвертации Auth0 в NextAuth.js:
**Input:**
```
Source Provider: Auth0
Target Provider: NextAuth.js
Configuration:
Domain: myapp.us.auth0.com
Client ID: abc123def456
Allowed Callbacks: https://myapp.com/api/auth/callback/auth0
Scopes: openid profile email
```
**Output:**
```typescript
// app/api/auth/[...nextauth]/route.ts
import NextAuth from "next-auth"
import Auth0Provider from "next-auth/providers/auth0"
export const authOptions = {
providers: [
Auth0Provider({
clientId: process.env.AUTH0_CLIENT_ID!,
clientSecret: process.env.AUTH0_CLIENT_SECRET!,
issuer: process.env.AUTH0_ISSUER,
authorization: {
params: {
audience: process.env.AUTH0_AUDIENCE,
scope: "openid profile email",
},
},
}),
],
callbacks: {
async jwt({ token, account }) {
if (account) {
token.accessToken = account.access_token
token.idToken = account.id_token
}
return token
},
async session({ session, token }) {
session.accessToken = token.accessToken as string
return token
},
},
pages: {
signIn: '/auth/signin',
signOut: '/auth/signout',
error: '/auth/error',
},
}
const handler = NextAuth(authOptions)
export { handler as GET, handler as POST }
```
```bash
# .env.local
AUTH0_CLIENT_ID=abc123def456
AUTH0_CLIENT_SECRET=your-client-secret-here
AUTH0_ISSUER=https://myapp.us.auth0.com
AUTH0_AUDIENCE=https://api.myapp.com
NEXTAUTH_URL=https://myapp.com
NEXTAUTH_SECRET=generate-with-openssl-rand-base64-32
```
**Migration Checklist:**
- [ ] Install dependencies: `npm install next-auth`
- [ ] Generate NEXTAUTH_SECRET: `openssl rand -base64 32`
- [ ] Update Auth0 callback URL to include NextAuth path
- [ ] Configure API routes in your Next.js app
- [ ] Update Auth0 Application Type to "Regular Web Application"
**Feature Mapping:**
| Auth0 Feature | NextAuth Equivalent | Notes |
|--------------|--------------------| ------|
| Universal Login | Built-in pages or custom | Use `pages` config for custom |
| Access Token | JWT callback | Persisted in session |
| Refresh Token | JWT callback + rotation | Requires additional setup |
| User Metadata | Profile callback | Map from Auth0 claims |
Поделитесь в социальных сетях
Комментарии
Войдите, чтобы комментировать.
Комментариев пока нет.