AzureAD身份验证只适用于本地(AzureAD authentication only works on local)
我在门户中设置了我的AzureAD,以及使用AD来验证来自Microsoft的以下指令的appservice。
我制作了一个使用此授权的.net核心应用程序。 它适用于我的本地主机。 但是当我发布它时,我得到这个错误
AADSTS50011:请求中指定的回复URL与为应用程序配置的回复URL不匹配:'614f66a9-xxxx-483a-8bc7-xxxxxxx'
我应该改变什么,以及它如何在我的本地工作,但不是在发布时才起作用?
这是应用的当前配置:
{ "AzureAd": { "Instance": "https://login.microsoftonline.com/", "Domain": "lmyName.onmicrosoft.com", "TenantId": "******-ebd5-40d8-829b-*********", "ClientId": "*****-8eef-483a-8bc7-********", "CallbackPath": "/signin-oidc" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } } }
当我关注在线入侵时,我被指示配置门户中的appservice以使用回复URL:/.auth/login/aad/callback
这可能与回调路径相同吗?
Ive set up my AzureAD in the portal, and an appservice that uses the AD to authenticate following instructions from microsoft.
Ive made a .net core app that uses this authorisation. It works on my localhost. But when i publish it i get this error
AADSTS50011: The reply url specified in the request does not match the reply urls configured for the application: '614f66a9-xxxx-483a-8bc7-xxxxxxx'
What should i change and how come it works in my local but not when published?
This is current configuration of app:
{ "AzureAd": { "Instance": "https://login.microsoftonline.com/", "Domain": "lmyName.onmicrosoft.com", "TenantId": "******-ebd5-40d8-829b-*********", "ClientId": "*****-8eef-483a-8bc7-********", "CallbackPath": "/signin-oidc" }, "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } } }
When i followed the online intructions i was directed to configure the appservice in the portal to use reply URL: /.auth/login/aad/callback
Could that be the same as callbackPath?
原文:https://stackoverflow.com/questions/49923017
最满意答案
改编我以前的答案之一:
有几种方法可以“激活”复制的软件,以试图停止应用程序的随意复制。
在最简单的情况下,可能通过您的网站向您购买注册码(“CD key”),并将其发送给将其输入程序或安装程序的用户。 整个过程基本上可以离线完成; 程序本身确定代码是有效的还是无效的。
这很好,很容易,但它极易受密钥共享的影响 - 因为没有“打电话回家”,那么应用程序无法知道成千上万不同的人都使用了他们从互联网或串行库或他们的朋友下载的相同密钥。 制作一些从未真正由开发人员发布的有效密钥的“密钥”也是相当容易的。
然后我们进入在线注册。 你仍然有一些代码,但程序会回到服务器,以确定代码是否有效并且通常是唯一的。 这阻止了基本的密钥共享,因为该公司知道来自世界各地的太多人都在使用相同的密钥。 也许还有一些使用MAC地址的身份识别,在同一硬件上允许无限注册,但似乎是另一台计算机的数量可能有限。
这仍然非常简单,并停止简单的密钥共享。 人们实际上将不得不破解软件或伪装服务器响应以通过它。
有时程序本身部分/大部分是加密的,只能通过在线注册步骤解密。 根据混淆程度如何,那么破解可能非常困难并且非常耗时。 生化奇兵是这方面的一个高调例子 - 首次推出全新的加密/复制保护方案,从发布到破解大约两周。
最后,特别谨慎的应用程序可能会与服务器保持不断的联系,如果连接中断,则拒绝工作。
如果您确定所有的用户都会拥有可靠的互联网连接,那么它可以被认为是保护应用程序的一种强有力的方式,但这是以隐私和一些用户对间谍软件的不信任为代价的。
在这种情况下,为了避开激活,他们需要伪装服务器本身。 蒸汽模拟器和私人WoW服务器就是一个例子。 最后,没有什么是不可破解的。
Adaption of one of my previous answers:
There are a few ways to "activate" copied software to try to stop casual copying of the application.
In the most simplistic case, a registration code ("CD key") purchased from you, possibly via your website, and it is sent to the user who enters it into the program or installer. The whole process can basically be done offline; the program itself locally determines that the code is valid or invalid.
This is nice and easy, but it extremely vulnerable to key sharing - since there's no "phoning home" then the application cannot know that thousands of different people are all using the same key that they got off the internet or a serial library or their friend. It's also reasonably easy to make "keygens" which generate valid-seeming keys that were never actually issued by the developers.
Then we get into online registration. You still have some kind of code, but the program will phone home back to the server to determine whether the code is valid and usually unique. This stops basic key sharing, because the company knows if too many people from all over the world are all using the same key. Perhaps there is some kind of identification involved using MAC address, too, with infinite registrations allowed on the same hardware but maybe a limited number on what appears to be a different computer.
This is still pretty easy and stops simple key sharing. People will actually have to get into cracking the software or faking the server response to get past it.
Sometimes the program itself is partially/mostly encrypted and is only decrypted by the online registration step. Depending on how well this is obfuscated then it can be pretty difficult and time consuming to crack. Bioshock was a high-profile example of this - debuting with a brand new encryption/copy protection scheme that took around two weeks from release to be broken.
Finally, a particularly guarded application might stay in constant contact with the server, refusing to work at all if the connection is severed.
If you know for sure that all your users will all have reliable internet connections then it can be considered quite a strong way to protect the app, at the cost of privacy and some user distrust of the spyware.
In this case to get around the activation they would need to fake the server itself. Steam emulators and private WoW servers are an example of this. And in the end, nothing is uncrackable.
相关问答
更多-
软件用英文怎么说[2023-07-22]
software -
我会回答我自己的问题。 对汉斯·帕桑(Luis Passant)和卢克斯(Luke)的质疑, 我下载了Microsoft Visual C ++ 2005 Service Pack 1可重新分发包MFC安全更新,并将其安装在我正在尝试运行C:\foo\foo.exe 。 此后EXE运行良好。 安装程序将CRT DLL放在C:\windows\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.6195_x-ww_44262b86 。 所以,是的, ...
-
我不会这样做 改用虚拟PC。 它可能需要一些设置,但是从长远来看你会感谢你自己。 根据我的经验,您无法真正将它们整齐地并排安装,除非它们是独立安装,否则无法真正验证它是否为100%的真实浏览器渲染。 更新:看起来像一个更好的方法来完成这一点(如果运行Windows 7)正在使用Windows XP模式设置多个虚拟机:在IEBlog的 一台PC上测试多个版本的IE 。 更新2: (11/2014)自从上次更新以来,有新的解决方案。 Microsoft现在为任何环境提供虚拟机来测试多个版本的IE: Modern ...
-
至少,包含任务的代码需要在运行它们的框上。 也就是说, djangoapp.tasks代码需要存在。 当然,它的所有依赖项(可能是模型代码)和配置(设置)也需要存在。 你可以尝试通过仅包括那些部分来节省一些空间,但我真的不认为这是值得的。 您应该在两台服务器上运行整个代码库(项目+应用程序)。 有关信息,当您启动Celery时,将显示已注册的任务。 您可以使用它来检查所有设置是否正确。 At the very least, the code containing the tasks needs to be ...
-
需要帮助使用java将文件从本地计算机复制到远程计算机(Need help in copying a file from local machine to remote machine using java)[2022-02-13]
有一个原生的Jenkins解决方案,不确定为什么需要Java: 归档你的cvs文件并使用Copy Artifact Plugin将它添加到selenium作业的WS中。 There is a native Jenkins solution for it, not sure why you need Java: Archive your cvs file and use Copy Artifact Plugin to add it into the WS of the selenium job. -
如果它们分别启动(即使它们在同一台物理机器上运行),这两个应用程序将在不同的虚拟机中运行。 OSGi已被提及作为将它们组合在一起的一种方式,但如果您想将它们作为单独的应用程序维护,则可能值得将Web服务视为一种通信方法。 与RMI相比,这种优势在于与其他应用程序的互操作性以及未来开发的灵活性。 The two applications will run in different virutal machines if they are started separately (even if they are ...
-
改编我以前的答案之一: 有几种方法可以“激活”复制的软件,以试图停止应用程序的随意复制。 在最简单的情况下,可能通过您的网站向您购买注册码(“CD key”),并将其发送给将其输入程序或安装程序的用户。 整个过程基本上可以离线完成; 程序本身确定代码是有效的还是无效的。 这很好,很容易,但它极易受密钥共享的影响 - 因为没有“打电话回家”,那么应用程序无法知道成千上万不同的人都使用了他们从互联网或串行库或他们的朋友下载的相同密钥。 制作一些从未真正由开发人员发布的有效密钥的“密钥”也是相当容易的。 然后我们 ...
-
不同的java版本安装在不同的目录中,因此运行具有不同JRE版本的2个Java程序将不会产生任何效果,而是运行2个java进程。 所以底线,这是没有问题的,它不会让你放慢脚步。 另外,Java 6比1.4性能更好,所以如果你可以在6上运行它通常更好。 Different java version are installed in different directories so running 2 java programs with different JRE version will not make ...
-
是的,因为几乎任何语言框架都作为该语言的普通代码运行,只需为您编写的应用程序提供结构,它们可以与其他语言共存于相同或其他语言。 您当然可以在同一台机器上运行Rails和Java框架 - 您甚至可以在JRuby和Java应用程序服务器上运行Rails 听起来你刚刚开始编程。 我建议先学习一些基础知识。 例如,如果您想学习Ruby,请尝试使用Pickaxe书 ,编写一些简单的脚本,然后转到像Sinatra或Rails这样的ruby Web框架。 您将更好地理解语言和框架之间的区别,每种方式在您的机器上的安装和运 ...
-
如何将现有的maven存储库内容从一台机器复制到另一台机器?(How to copy an existing maven repository contents from one machine to other?)[2022-08-11]
是的,只需复制即可。 我们使用rsync来做到这一点并没有问题。 如果您使用的是Windows,如果您想要经常复制,也可以设置cygwin来执行此操作。 至少你可以将它压缩,复制并在目标机器上解压缩。 Yes, just copying will work. We use rsync to do this and have no problems. If you are using Windows, you can also setup cygwin to do this if you want to co ...