Web services Azure广告登录应用程序+;azure之外的远程Web服务/api
嗨,我正在创建一个cordova应用程序,它使用Azure AD对我的用户进行身份验证。 我在Azure之外有一个webservice/api——这是应用程序获取其内容以显示的地方 我想在访问我的Web服务之前检查我的用户Azure AD登录 到目前为止,我正在我的应用程序中使用Azure AD对我的用户进行身份验证,如果用户经过身份验证,我的应用程序将向我的Web服务发送数据请求。 但我想确保只有在我的Azure广告中拥有活动登录名的用户才能从我的Web服务检索数据 所以现在,只要知道正确的url,任何人都可以访问我的Web服务。 如何保护我的Web服务Web services Azure广告登录应用程序+;azure之外的远程Web服务/api,web-services,azure,azure-active-directory,adal,Web Services,Azure,Azure Active Directory,Adal,嗨,我正在创建一个cordova应用程序,它使用Azure AD对我的用户进行身份验证。 我在Azure之外有一个webservice/api——这是应用程序获取其内容以显示的地方 我想在访问我的Web服务之前检查我的用户Azure AD登录 到目前为止,我正在我的应用程序中使用Azure AD对我的用户进行身份验证,如果用户经过身份验证,我的应用程序将向我的Web服务发送数据请求。 但我想确保只有在我的Azure广告中拥有活动登录名的用户才能从我的Web服务检索数据 所以现在,只要知道正确的u
azure中是否有可以检查用户访问令牌是否有效的端点?azure AD没有用于令牌验证的端点(也称为令牌内省端点) 总的来说,你说的是教科书上的场景 针对此场景,Azure AD遵循的方法是让您的web API验证令牌本身,这可以通过以下方式实现:
- [首选]使用进行令牌验证的库
- 或者自己实现令牌验证。请注意,这是一种非常容易出错且有风险的方法
app.UseWindowsAzureActiveDirectoryBearerAuthentication(
new WindowsAzureActiveDirectoryBearerAuthenticationOptions
{
Audience = clientID,
Tenant = tenant
});
var passport = require('passport');
var BearerStrategy = require('passport-azure-ad').BearerStrategy;
var options = {
// The URL of the metadata document for your app. We will put the keys for token validation from the URL found in the jwks_uri tag of the in the metadata.
identityMetadata: config.creds.identityMetadata,
clientID: config.creds.clientID,
audience: config.creds.audience
};
var bearerStrategy = new BearerStrategy(options,
function(token, done) {
// Post-validation code
}
);
passport.use(bearerStrategy);