gpt4 book ai didi

azure - JHipster 使用 Azure Active Directory 而不是 Keycloak 或 Okta

转载 作者:行者123 更新时间:2023-12-02 06:30:35 25 4
gpt4 key购买 nike

我想开发一个 SaaS 应用并将其部署在 Azure 上。因为业务逻辑不会那么复杂所以我想使用JHipster作为入门套件。该应用程序将有两种类型的用户:想要使用 Office 365 帐户登录应用程序的“办公室”用户和想要使用 Google 或 Facebook 等社交帐户或只是创建新的本地帐户的“普通”用户。所有帐户都应由 Azure 管理,我们的数据库中不应存储任何密码。

第一个问题是关于 Azure:我应该使用哪种类型的 AAD? B2B还是B2C?或者两者兼而有之?

第二个关于 JHipster:是否可以配置 JHipster 根据 AAD 对用户进行身份验证?在有关创建 JHipster 应用程序的身份验证的问题中,我应该选择哪个选项?

第三个关于 Azure:如果“office”用户可以将我们的 SaaS 应用程序添加到 Office 365 主屏幕的应用程序列表中,那就太好了。可能吗?

我只有“本地”经验,所以也许我的问题很简单,但这是我进入任何云的第一步,在本例中是进入 Azure。

问候,雅采克

最佳答案

先决条件:您需要在 azure 租户中注册您的应用程序并获取客户端 ID 和 key 。 Register App

在您的 application.yml 文件中,此类设置应该会将您连接到 azure 广告。

# ===================================================================
# OpenID Connect Settings. Default settings are for Azure
# ===================================================================
security:
oauth2:
client:
access-token-uri: https://login.microsoftonline.com/common/oauth2/token
user-authorization-uri: https://login.microsoftonline.com/common/oauth2/authorize
client-id: <<yourclientid>>
client-secret: <<yourregistry>>
client-authentication-scheme: query
preEstablishedRedirectUri: http://localhost:8885/login
useCurrentUri: false
resource:
user-info-uri: https://graph.windows.net/me?api-version=1.6
id: https://graph.windows.net/

您将需要更新 UserService 类方法 getUser() 以获取正确的信息。

private static User getUser(Map<String, Object> details) {
User user = new User();
user.setId((String) details.get("userPrincipalName"));
user.setLogin(((String) details.get("userPrincipalName")).toLowerCase());
if (details.get("givenName") != null) {
user.setFirstName((String) details.get("givenName"));
}
if (details.get("surname") != null) {
user.setLastName((String) details.get("surname"));
}
if (details.get("displayName") != null) {
user.setDisplayName((String) details.get("displayName"));
}
if (details.get("email_verified") != null) {
user.setActivated((Boolean) details.get("email_verified"));
}
if (details.get("userPrincipalName") != null) {
user.setEmail(((String) details.get("userPrincipalName")).toLowerCase());
}
if (details.get("langKey") != null) {
user.setLangKey((String) details.get("langKey"));
} else if (details.get("locale") != null) {
String locale = (String) details.get("locale");
if (locale.contains("-")) {
String langKey = locale.substring(0, locale.indexOf("-"));
user.setLangKey(langKey);
} else if (locale.contains("_")) {
String langKey = locale.substring(0, locale.indexOf("_"));
user.setLangKey(langKey);
}
}
if (details.get("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="87f3eff2eae5e9e6eeebd7efe8f3e8c7e8e3e6f3e6a9eae2e3eee6c2e3eef3cbeee9ec" rel="noreferrer noopener nofollow">[email protected]</a>") != null) {
user.setImageUrl((String) details.get("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cbbfa3bea6a9a5aaa2a79ba3a4bfa48ba4afaabfaae5a6aeafa2aa8eafa2bf87a2a5a0" rel="noreferrer noopener nofollow">[email protected]</a>"));
}
user.setActivated(true);
return user;
}

关于azure - JHipster 使用 Azure Active Directory 而不是 Keycloak 或 Okta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52727502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com