У меня есть защищенный бэкэнд Keycloak, к которому я хотел бы получить доступ через swagger-ui. Keycloak обеспечивает неявный поток кода oauth2 и доступ к нему, но я не смог заставить его работать. В настоящее время отсутствует документация Keycloak относительно того, какой URL следует использовать для authorizationUrl и tokenUrl в swagger.json.
Каждая область в Keycloak предлагает огромный список URL-адресов конфигурации, открывая http://keycloak.local/auth/realms/REALM/.well-known/openid-configuration
Кроме того, я попытался напрямую интегрировать js-клиент keycloak в swagger-ui index.html, добавив следующие строки:
<script src="keycloak/keycloak.js"></script>
<script>
var keycloak = Keycloak('keycloak.json');
keycloak.init({ onLoad: 'login-required' })
.success(function (authenticated) {
console.log('Login Successful');
window.authorizations.add("oauth2", new ApiKeyAuthorization("Authorization", "Bearer " + keycloak.token, "header"));
}).error(function () {
console.error('Login Failed');
window.location.reload();
}
);
</script>
Я также попробовал что-то подобное после "Вход успешен"
swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", "Bearer " + keycloak.token, "header"));
Но это также не работает.
Любые предложения, как я могу интегрировать аутентификацию Keycloak в Swagger?