Promt-Hub
Главная / Программирование и IT / Конвертер конфигураций провайдеров аутентификации

Конвертер конфигураций провайдеров аутентификации

Описание промпта
Инструмент для инженеров 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 |

Поделитесь в социальных сетях

Комментарии

Войдите, чтобы комментировать.

Комментариев пока нет.