问题标签 [appsource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
61 浏览

microsoft-dynamics - 创建多租户 OAuth 客户端应用程序

本质上,我想创建一个 Oauth 客户端作为应用程序,以便我可以从 Dynamics 为多个客户获取数据。有谁知道这是否可以在 AppSource 中做到,或者你知道另一种方式吗?

我有一项服务将在与 Azure 不同的云中提供服务,所以我真的没有任何东西可以作为应用程序提交,我真的不希望每个客户都必须设置自己的应用程序来为我的服务提供特权/access 它需要,但看起来我可能不得不这样做。

0 投票
2 回答
293 浏览

single-sign-on - 为 Google 计算引擎托管应用启用 AAD 联合 SSO

我有一个托管在 Google 计算引擎上的 Web 应用程序。我试图在 Microsoft AppSource 上列出它。列出的强制性条件之一是为应用启用 Azure Active Directory 联合单一登录(AAD 联合 SSO)。

Google Cloud 平台支持基于 SAML 2.0 的 SSO。因此,从技术上讲,这应该是可能的。有没有人试过,有经验分享一下。提前致谢。

0 投票
1 回答
2671 浏览

azure-active-directory - Azure AD (Active Directory) 中的多租户应用程序失败并显示 AADSTS50020

我在我们组织的“xxx.onmicrosoft.com”Azure Active Directory 中创建了一个“Web 应用程序/API”应用程序。该应用程序的“多租户”属性已设置为“是”。

我们将 OpenID Connect(我们使用https://github.com/mitreid-connect/)配置为使用以下 URL:

请注意,我们在 URL 中使用了“common”,而没有使用“xxx.onmicrosoft.com”,因为我们希望“xxx.onmicrosoft.com”之外的人能够验证和访问我们的应用程序。

通过这些设置,来自 xxx.onmicrosoft.com 的人员可以正确地验证和访问该应用程序。

但是,当我使用我的个人 live.com 帐户(用户名 xxx@gmail.com)访问该应用程序时,我收到 AADSTS50020 错误。我能够使用我的 xxx@gmail.com 帐户进行正确身份验证,但我没有被重定向到回复 URL。我被困在 Microsoft 的网页上,出现以下错误消息:

AADSTS50020:来自身份提供者“live.com”的用户帐户“xxx@gmail.com”在租户“xxx.onmicrosoft.com”中不存在,并且无法访问该租户中的应用程序“391e7103-ZZZZ-zz87-xxxx-7xxxxd5xxxx” . 需要先将该帐户添加为租户中的外部用户。注销并使用不同的 Azure Active Directory 用户帐户重新登录。

如果我希望来自任何身份提供者的人能够访问我的应用程序,我需要更改什么配置?

就像这里所说的那样,我希望任何地方的人都可以访问我的应用程序,而无需我进行更多配置。

我问这个问题是因为我正在为 AppSource 获得认证,而这目前阻止了我这样做。

0 投票
1 回答
204 浏览

c# - 多租户 OpenID 集成到 ASP.Net MVC Web 应用程序,没有原生 .Net 身份验证支持

我们有一个带有自定义身份验证功能的 Asp.Net MVC Web 应用程序(不使用 .Net 身份验证框架)。现在我们想将它与 Azure Active Directory 集成,并支持多租户。我遵循了以下应用程序示例,示例应用程序将我定向到 AD 登录页面。

但是,当我在我的应用程序中做同样的事情时,它只是将我重定向到http://localhost:14223/app/login.aspx?我们没有使用 FormsAuthentication 或任何东西,所以我不确定这是怎么发生的,以及避免它的过程是什么。任何帮助,将不胜感激。

谢谢。

0 投票
1 回答
427 浏览

azure-active-directory - 如何在多租户 Azure Active Directory (AAD) 中支持多个登录方案

我们的应用程序(以下称为“XYZ_App”)是一个多租户 SaaS 应用程序。我们正在将其作为多租户“Web 应用程序/API”(以下称为“AppSourceXYZ_App”)提供给 Microsoft AppSource。

当需要/需要多租户时,我们开始我们的 OpenID Connect 实施,端点指向“common”,如文档中所述。

在 XYZ_App 中,我们在系统中添加了信息以了解每个 XYZ_App 租户与哪个 AAD 实例相关联(使用 Microsoft 分配给此 AAD 实例的 GUID,我们没有使用“rename-safe.onmicrosoft.com”表示)。

当使用“通用”端点时,我们必须从 JWT 手动验证颁发者,以确保它是预期的:用户可以访问 XYZ_App 请求访问与 contoso.onmicrosoft.com 关联的 XYZ_App 租户,然后定向到“登录” .microsoftonline.com/common”进行身份验证,然后决定使用来自另一个 AAD 实例(以下称为“anotherAADInstance.onmicrosoft.com”)的用户进行身份验证。在这种情况下,即使用户可以在 anotherAADInstance.onmicrosoft.com 上成功进行身份验证,XYZ_App 的重定向 URI 也必须确保 JWT 颁发者是来自 contoso.onmicrosoft.com 的颁发者。我将此设置称为 Scenario_1。

考虑到这种情况,我们考虑过不使用“common”并即时自定义访问 login.microsoftonline.com 的请求;试图“监禁”强制对特定 AAD 实例进行身份验证的请求。我们仍然需要在重定向 URI 中执行验证,以确保发布者是合适的,但我们认为这种方法可能会让我们的生活更轻松。我将此设置称为 Scenario_2。

您认为 Scenario_2 从长远来看是可行的还是过于短视?根据我目前对 OpenID Connect 的了解,我可以看到 Scenario_2 的一个限制是,在我们的应用程序中支持“代理帐户”会变得有问题。

“经纪人账户”的解释:在我们的行业中,允许一些外部用户访问系统。假设我有一家名为“BrokerCo”的公司(拥有自己的 brokerco.onmicrosoft.com AAD 实例),该公司有 2 名员工:Broker1 和 Broker2。另一个 AADInstance 和 contoso 都聘请了 Broker1 和 Broker2 来获取代理服务以在 XYZ_App 中执行任务;要求 XYZApp 授予他们访问权限。从 OpenID Connect 的角度来看,理想的身份验证方式是什么?如果 XYZ_App 使用“login.microsoftonline.com/common”进行身份验证(如 Scenario_1;与 Scenario_2 中的“监禁”访问相反),Broker1 和 Broker2 可以通过 brokerco.onmicrosoft.com 进行身份验证(没有 AAD“外部用户" 对于另一个 AADInstance 或 contoso),

您有解决此问题的建议或指示吗?

背景上下文:在使用 OpenID Connect 发行者时,我收到以下错误消息:AADSTS50020:来自身份提供者的用户帐户 'testuser@anotherAADInstance.onmicrosoft.com' https://sts.windows.net/XXXXXXXX-fake-GUID- 9bZZ-XXXXxxxxXXXX/ '在租户 'XYZ Publisher' 中不存在,并且无法访问该租户中的应用程序 'YYYYYYYY-fake0-GUID-YYYYyyyyYYYY'。需要先将该帐户添加为租户中的外部用户。注销并使用不同的 Azure Active Directory 用户帐户重新登录。

提前致谢 !

0 投票
0 回答
102 浏览

oauth-2.0 - Office365 单点登录 oauth 错误

我们正在寻找与使用 Office 365 和我们的云托管应用程序进行单点登录相关的日志中看到的错误指导,该应用程序允许用户使用其 Office 365 凭据登录。

登录尝试失败 日志中的错误消息和我们收到的电子邮件 O365OAuthCallback 这些总是导致我们的日志中出现一对错误:错误代码 AADST70002 和 AADST70011、无效的凭据和无效以及扩展消息说 OAuth 与回复地址不匹配。

我们的日志显示用户能够登录,并且没有客户向我们的支持团队提出过这个问题。尽管进行了多次尝试,但我们从未能够自己复制这个问题。

这是警告、超出速率限制还是超出配额?解决此问题的最佳方法是什么?所有指导表示赞赏。

0 投票
1 回答
939 浏览

outlook - Outlook 加载项:部署新版本不会在 Outlook 中更新

我目前正在开发现有的 Office 365 Outlook 插件。我没有使用 Visual Studio,而是在 Mac 上使用 Eclipse。我只需要进行一些调试来检查 api 调用的响应,因此我添加了调试代码并将加载项部署在托管服务器上。然后,我从 Office 管理中心重新上传加载项,使其可供所有用户使用。

最初的问题是插件的更新版本没有立即在 Outlook 中更新。我离开了一天,今天 Outlook 正在为更新的加载项提供服务,但后来我不得不添加更多调试代码,并且一旦重新部署新的加载项版本,Outlook 就不再提供服务。认为这是一个缓存问题,我删除了所有浏览器缓存(本地存储、会话存储、缓存存储)。不幸的是,从那时起,加载项根本没有加载,返回加载项错误:

我尝试重新部署它以更新清单中的版本,但仍然没有成功。我真的不能再浪费一天等待新版本的启动,所以我想知道是否有更快的方法?我在部署加载项时做错了吗?上传新版本的加载项是否没有立即在 Outlook 中提供服务?

0 投票
1 回答
434 浏览

web-applications - 如何在 Appsource.Microsoft.com 上发布“Web App”?

我想在Appsource上发布一个Web 应用程序,以便它们出现在页面上:

Appsource-WebAppsCategory

我真的很感激这方面的帮助。谢谢。

0 投票
0 回答
67 浏览

office365 - 如何通过 Microsoft Graph REST API 获取非本地多租户应用程序的应用程序数据?

我正在开发一项功能来监控安装在 Office 365 环境中的第 3 方应用程序。在 Graph API 中,我发现了一个 REST 调用来获取租户的服务主体。我还找到了详细说明 Azure AD 中服务主体和应用程序之间关系的文章和文档。因此,我了解多租户应用程序将仅具有该应用程序的主机租户上的应用程序对象,而运行该应用程序的每个租户将具有该应用程序的单独服务主体对象。请参阅下面的链接:

Azure Active Directory (Azure AD) 中的应用程序和服务主体对象

但是,当我尝试使用 Get Application REST 调用传入服务主体中的 appId 时,我只能获得托管在本地租户上的应用程序的结果,而不是 Azure 或 AppSource 市场提供的应用程序的结果。我正在使用这个电话:

获取应用程序

当我尝试时,我得到一个 Request_ResourceNotFound 错误代码。

我什至尝试将 Graph API 转到 Azure AD API,您可以在其中指定租户 ID,但结果相似。这是我尝试过的 Azure API:

应用程序 - 获取

我怀疑有一种方法可以使这些 API 中的一个或两个工作以获取由其他租户托管的应用程序,但是两者的文档都相当简短,我无法弄清楚。

据我所知,有关使用图形 API 或提及服务主体和应用程序的大多数文档是为那些试图让自己的应用程序显示在其租户的 UI 中的人设计的,而不是为设计的工具而设计的像我试图做的那样监控其他应用程序。

最后我应该提到,我的最终目标是尽可能多地收集有关应用程序的元数据,这些元数据超出了应用程序对象中现成的应用程序对象,该应用程序对象似乎只包含一个徽标和一些在服务主体。最终,我正在寻找一种方法,将这些点与具有更丰富信息的市场中的第 3 方应用程序条目联系起来。到目前为止,我也很沮丧,因为它们似乎没有与服务主体或应用程序对象共享任何可靠的唯一标​​识符,这些标识符可以让我将这些点联系起来。仅在应用程序名称上建立连接似乎是不可行的,尤其是当应用程序名称似乎可以在 UI 中更改(出于某种原因)并影响服务主体中的名称时。

但是,对于那些可能未在官方市场上发布的应用程序,获取应用程序 API 可能是我能做的最好的。

任何帮助将不胜感激。谢谢!

0 投票
2 回答
172 浏览

azure - 如何在市场上发布我的应用

我想知道我可以从哪里获取数据,以便了解如何将我的应用程序与 azure marketplace/appSource 集成。我的想法是将其作为交易应用程序进行,但我无法找到任何有关如何执行此操作的文档。